简单的问题。我正在运行 5 个 KVM/QEmu 实例。主机每 5 个实例中就会持续冻结约半秒钟。磁盘 LED 提示它与磁盘写入有关。主机是 FC14,客户机是 FC14/FC15/Windows 7/BSD
主机在这短暂的时间内完全没有响应。任何键盘/鼠标输入都会在暂停后“跟上”。
尝试在 libvirt 中使用不同的缓存模式、不同的磁盘类型,但无论客户机数量有多少,问题仍然存在(尽管 Windows 使情况变得更糟,即使在暂停时)。
这是 libvirt 执行的典型 cmd。
/usr/bin/qemu-kvm -S -M pc-0.13 -cpu phenom,+wdt,+skinit,+osvw,+3dnowprefetch,+misalignsse,+sse4a,+abm,+cr8legacy,+extapic,+cmp_legacy,+lahf_lm,+rdtscp,+pdpe1gb,+popcnt,+cx16,+ht,+vme -enable-kvm -m 2048 -smp 3,sockets=3,cores=1,threads=1 -name devserver -uuid aaa-bbb-ccc-ddd-eee-fff -nodefconfig -nodefaults -chardev socket,id=monitor,path=srv.monitor,server,nowait -mon chardev=monitor,mode=readline -rtc base=utc -boot c -drive file=srv.img,if=none,id=drive-virtio-disk0,boot=on,format=raw -device virtio-blk-pci,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-disk0 -drive file=srv_data.img,if=none,id=drive-ide0-0-0,format=raw -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -drive file=srv_home.vmdk,if=none,id=drive-virtio-disk1,format=vmdk -device virtio-blk-pci,bus=pci.0,addr=0x7,drive=drive-virtio-disk1,id=virtio-disk1 -device rtl8139,vlan=0,id=net0,mac=aa:bb:cc:dd:ee,bus=pci.0,addr=0x3 -net tap,fd=51,vlan=0,name=hostnet0 -chardev pty,id=serial0 -device isa-serial,chardev=serial0 -usb -device usb-tablet,id=input0 -vnc 127.0.0.1:0 -vga cirrus -device AC97,id=sound0,bus=pci.0,addr=0x4 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6
有什么想法可以通过调整来解决这个问题吗?
提前致谢。
答案1
这不是你的最终答案 - 我会首先查看磁盘 iops - 使用 iostat 和 sar (sysstat) 等工具 - 找出你的实际 iops - 并检查你的交换是否也繁忙
我曾在软件 raid (md) 中看到过类似的 sata 驱动器行为,每次 kvm 客户端执行大量写入时,vm 的响应性都会滞后很多。我没有花时间进行调整,我们切换到具有缓存、电池和写回功能的 raid 控制器 - 仍然是相同的驱动器,这很有帮助 - 我的直觉是写入缓存是诀窍。(那是一台具有 12GB 内存的四核至强处理器,运行 2 个 Windows DC 和 5 个小型应用程序服务器,没有一个那么忙,使用了 3ware 9690)。