Ubuntu 12.04 KVM 主机负载高,Ubuntu 12.04 客户机处于空闲状态

Ubuntu 12.04 KVM 主机负载高,Ubuntu 12.04 客户机处于空闲状态

我被这个困住了。

在两台物理机器上全新安装 Ubuntu 12.04 服务器 64 位。机器完全相同,只是其中一台有 8GB RAM,而问题机器有 32GB RAM,两台机器都是同时购买的,规格相同。Ubuntu 于 24 小时前完全更新。

我正在使用 virt-manager 通过 SSH 隧道上的 X-windows 来管理虚拟机,服务器操作系统根本不运行 X-windows 会话,我的桌面却运行。

构建并运行多个 Ubuntu 12.04 服务器 64 位虚拟机,每个虚拟机分配 1GB RAM。这些虚拟机的配置基本相同(宽容 MAC 地址等)。

8GB 机器有 2 个虚拟机,32GB 机器有 3 个虚拟机。所有虚拟机都报告低负载(小于 0.5,通常为 0.01),并且利用率根本不高。

8GB 主机服务器报告的负载小于 0.1,通常为 0.01。32GB 主机服务器报告的负载持续大于 10.0。同样,所有虚拟机报告的内部负载小于 0.5。顶部的 CPU 空闲率超过 95%,等待率为 0.0%。

为什么 32GB 机器负载很高(主机空闲且客户机空闲),而配置相同的 8GB 机器却报告预期的低负载?

启动一台虚拟机后,32GB 负载会升高,运行 3 台虚拟机不会使负载升高。停止所有虚拟机会导致 32GB 机器负载下降。

我无法理解。我预计 32GB 负载与 8GB 负载相匹配。

更新 #1:Nathan C

top - 16:19:54 up 8 days,  6:01,  1 user,  load average: 14.33, 18.23, 18.07
Tasks: 135 total,   1 running, 134 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.5%us,  0.4%sy,  0.0%ni, 98.9%id,  0.0%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:  32938864k total, 29307380k used,  3631484k free,   331324k buffers
Swap:  4182436k total,        0k used,  4182436k free, 25330400k cached

 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
8752 libvirt-  20   0 3170m 747m 6932 S    7  2.3  26:27.20 /usr/bin/kvm -S -M pc-1.0 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -name r -uuid ...
8720 libvirt-  20   0 3969m 928m 6936 S    3  2.9  76:17.66 /usr/bin/kvm -S -M pc-1.0 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -name m -uuid ...
8687 libvirt-  20   0 3315m 1.0g 6936 S    2  3.3  60:33.03 /usr/bin/kvm -S -M pc-1.0 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -name d -uuid ...

答案1

经过一番调查,我发现了机器的问题所在。非常感谢那些提供帮助的人!

有帮助的网页在这里:http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/

基本上,我的物理主机有 SATA 磁盘,虚拟机配置了 SATA 控制器和 SATA 磁盘。我不知道这意味着虚拟化子系统将呈现虚拟 SATA 而不是 SATA 直通。

解决方案是将磁盘切换到 virtio。这意味着虚拟机现在意识到它们是虚拟化系统的一部分,并将合作以获得更好的性能。(我认为这就是它的意思)。

长话短说,始终在虚拟机上使用 virtio 作为磁盘和网络。

主机现在处于令人满意且冷静的负载平均值约 2-3。比以前的 20-50 好多了。

相关内容