Virtualization
當 cache=‘none’ 時 KVM 導致 CPU 負載過高
我已按照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