Virtualization

當 cache=‘none’ 時 KVM 導致 CPU 負載過高

  • September 14, 2012

我已按照http://www.linux-kvm.org/page/Tuning_KVM上的說明進行操作。主機是 Debian Squeeze Kernel 3.2、QEMU 1.0、libvirt 0.9.12(全部來自squeeze-backport)。所有 4 位客人也是 Debian Squeeze Kernel 3.2。

所以我在來賓 XML 中的設置是

<cpu model='host-passthrough'/>
<disk [...]/>
  <driver name='qemu' type='raw' cache='none'/>
  <target [...] bus='virtio'/>
</disk>
<interface [...]>
  <model type='virtio'/>
</interface>

來賓上的 IO 調度程序設置為 noop。在主機上,我嘗試了 noop/deadline/cfq,對我來說沒有顯著的性能差異。所有來賓儲存都由 LVM 提供。使用時cache='none',所有客人都沒有值得注意的負載,主機上的 15 分鐘平均 CPU 負載上升到 3-4。但是當使用cache='writeback'主機時 CPU 負載上升到小於 1。誰能解釋一下,為什麼 LVM 的建議設置會導致主機負載更高?

順便說一句:執行磁碟基準測試時,該選項none的 IO 性能高於writeback.

好的,通過io='native'磁碟部分的附加選項和cfq主機系統上的 IO 調度程序,我將為我的系統獲得最佳結果。io對於來賓 XML 中的所有選項值以及主機和來賓上的 IO 調度程序,IO 速率幾乎相同,只會cache='unsafe'顯著提高性能。但只有使用來賓中的io='native'調度程序和主機上的調度程序,我才能獲得最低的 CPU 負載。noop``cfq

引用自:https://serverfault.com/questions/427386