主機上的原始 LVM 磁碟寫入速度是 KVM 來賓內部的四倍?

主機上的原始 LVM 磁碟寫入速度是 KVM 來賓內部的四倍?

我有一台 Debian 10.6 主機和一台 Debian 10.6 來賓。 KVM/Qemu/libvirt。主機具有6個機械磁碟的軟體RAID 10陣列。 LVM 位於 RAID 陣列之上。使用以下方式將一個 LV 傳遞給來賓:

<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>

主機以大約 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

但在來賓內部,相同的測試運行速度要慢得多:

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

該系統尚未投入生產,也未處於負載狀態。我可以檢查什麼來提高寫入效能?

答案1

不要用作dd衡量性能的工具。範例中給出的命令列參數dd允許主機作業系統將寫入快取到 RAM 中。因此,此處的結果可能會因主機作業系統與來賓作業系統中可用於快取的 RAM 數量而產生偏差。fio是一個更相關的基準測試工具。

相關內容