
Eu tenho um host Debian 10.6, com um convidado Debian 10.6. KVM/Qemu/libvirt. O host possui uma matriz RAID 10 de software com 6 discos mecânicos. O LVM está no topo da matriz RAID. Um LV é passado para o convidado usando:
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none' io='native'/>
<source dev='/dev/raid10/lv0'/>
<target dev='vdb' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
</disk>
O host grava no volume lógico a cerca de 720 MB/s:
dd of=diskbench if=/dev/zero bs=30000000 count=2000
(60 GB, 56 GiB) copied, 82.7758 s, 725 MB/s
(60 GB, 56 GiB) copied, 82.5263 s, 727 MB/s
(60 GB, 56 GiB) copied, 83.8701 s, 715 MB/s
(45 GB, 42 GiB) copied, 58.9086 s, 772 MB/s
Porém, dentro do convidado, o mesmo teste é executado muito mais lentamente:
dd of=diskbench if=/dev/zero bs=30000000 count=2000
(60 GB, 56 GiB) copied, 254.088 s, 236 MB/s
(60 GB, 56 GiB) copied, 245.407 s, 244 MB/s
(60 GB, 56 GiB) copied, 242.558 s, 247 MB/s
Este sistema ainda não está em produção e não está sob carga. O que posso verificar para melhorar o desempenho de gravação?
Responder1
Não use dd
como ferramenta para medir desempenho. Os argumentos de linha de comando fornecidos dd
no seu exemplo permitem que o sistema operacional host armazene em cache as gravações na RAM. Portanto, os resultados aqui provavelmente são distorcidos pela quantidade de RAM disponível para armazenamento em cache no sistema operacional host versus o sistema operacional convidado. fio
é uma ferramenta muito mais relevante para benchmarking.