
Ich habe einen Debian 10.6-Host mit einem Debian 10.6-Gast. KVM/Qemu/libvirt. Der Host hat ein Software-RAID-10-Array mit 6 mechanischen Festplatten. LVM liegt auf dem RAID-Array. Ein LV wird an den Gast übergeben mit:
<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>
Der Host schreibt mit etwa 720 MB/s auf das logische Volume:
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
Innerhalb des Gastes läuft derselbe Test jedoch viel langsamer:
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
Dieses System ist noch nicht in Betrieb und nicht unter Last. Was kann ich überprüfen, um die Schreibleistung zu verbessern?
Antwort1
Nicht dd
als Tool zur Leistungsmessung verwenden. Die in Ihrem Beispiel angegebenen Befehlszeilenargumente dd
ermöglichen es dem Host-Betriebssystem, die Schreibvorgänge im RAM zwischenzuspeichern. Daher sind die Ergebnisse hier wahrscheinlich durch die für die Zwischenspeicherung im Host-Betriebssystem im Vergleich zum Gast-Betriebssystem verfügbare RAM-Menge verzerrt. fio
ist ein viel relevanteres Tool zum Benchmarking.