我有三个 Windows XP 客户机运行在最近升级的 64 位 Ubuntu 10.04 系统上。偶尔(大约每隔几天一次),其中一个客户机会变得无响应,并且运行该客户机的主机上的 kvm 进程将开始消耗 100% 的 CPU。它会一直这样,直到被终止。重新启动后,它会好一段时间,然后问题再次出现。
用来运行所有三个客户端的 kvm 命令行如下:
/usr/bin/kvm -S -M pc-0.12 -enable-kvm -m 1024 -smp 1 -name bigdog21vmxp1 \
-uuid ea47ff84-125b-16f7-9a4d-a6d0d8bab46a \
-chardev socket,id=monitor,path=/var/lib/libvirt/qemu/bigdog21vmxp1.monitor,server,nowait \
-monitor chardev:monitor \
-localtime \
-boot c \
-drive file=/var/lib/libvirt/images/windowsxp-1.qcow2,if=ide,index=0,boot=on,format=qcow2 \
-net nic,macaddr=54:52:00:02:06:0e,vlan=0,name=nic.0 \
-net tap,fd=58,vlan=0,name=tap.0 \
-chardev pty,id=serial0 \
-serial chardev:serial0 \
-parallel none \
-usb \
-usbdevice tablet \
-vnc 127.0.0.1:1 \
-k en-us \
-vga cirrus \
-soundhw es1370
为什么系统有时会出现这种错误?我可以更改哪些配置来修复它?或者,如果问题是由于 kvm 中的错误引起的,那么隔离 kvm 故障的过程是什么,以便开发人员有机会修复它?
答案1
我必须调试此问题的最佳方法是删除所有非必要参数,然后添加删除的参数,直到再次出现问题。这是我上次(在 uec 10.10 上)找到问题的唯一方法。
答案2
每当 Windows 客户机尝试重新启动时(例如自动更新后),发生此问题的可能性有多大?在 Ubuntu Jaunty 上的 libvirt+kvm 下,我总是在 Windows 客户机上遇到重启时冻结的行为;现在我的主机正在运行 Debian Squeeze,这种情况不再发生。