我在虚拟机中运行 SUSE Linux Enterprise Server 11 SP1。虚拟机管理程序是 KVM。虚拟机有 4 个虚拟 CPU 核心。现在有一件非常奇怪的事情。理论上,top 命令中的最大 CPU 使用率应该是 400%(因为有 4 个核心),但现在是 697%!有人能解释一下吗?这与虚拟机有关吗?
top - 17:52:33 up 2 days, 23:25, 5 users, load average: 0.00, 0.00, 1.04
Tasks: 180 total, 1 running, 174 sleeping, 5 stopped, 0 zombie
Cpu0 : 99.4%us, 0.1%sy, 0.0%ni, 0.6%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 3.9%us, 11.6%sy, 0.0%ni, 83.5%id, 1.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 3.8%us, 12.7%sy, 5.3%ni, 78.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 0.0%us, 0.1%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 3926008k total, 1138064k used, 2787944k free, 159120k buffers
Swap: 2104472k total, 5876k used, 2098596k free, 424540k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5129 sa 20 0 120m 12m 3680 S 697 0.3 5124160h warpypxq
5250 sadl 20 0 1119m 42m 6200 S 0 1.1 74:40.44 java
1 root 20 0 10376 724 688 S 0 0.0 0:02.72 init
2 root 20 0 0 0 0 S 0 0.0 0:00.00 kthreadd
3 root RT 0 0 0 0 S 0 0.0 0:00.67 migration/0
4 root 20 0 0 0 0 S 0 0.0 0:12.29 ksoftirqd/0
5 root RT 0 0 0 0 S 0 0.0 0:00.59 migration/1
答案1
这台机器有 10:1 的几率具有超线程,因此每个核心可以并行运行两个线程。因此,最大 CPU 利用率实际上将是 800%。