我有一个 Ubuntu 12.04 x64 映像,我将其用于不同虚拟化系统上的不同客户。当前客户使用 VirtualBox,系统负载很高,响应非常慢。
顶部输出:
top - 09:27:58 up 4 days, 10:19, 1 user, load average: 0.78, 0.87, 0.87
Tasks: 118 total, 2 running, 116 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.4%us, 0.8%sy, 0.0%ni, 90.4%id, 3.1%wa, 0.0%hi, 4.3%si, 0.0%st
Mem: 32174396k total, 4213080k used, 27961316k free, 347136k buffers
Swap: 2096124k total, 0k used, 2096124k free, 2108644k cached
以下是“ps aux”的输出
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 24336 2260 ? Ss Jul10 0:06 /sbin/init
root 2 0.0 0.0 0 0 ? S Jul10 0:02 [kthreadd]
root 3 5.8 0.0 0 0 ? S Jul10 371:31 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< Jul10 0:00 [kworker/0:0H]
root 7 1.8 0.0 0 0 ? S Jul10 118:43 [migration/0]
root 8 0.0 0.0 0 0 ? S Jul10 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? S Jul10 0:00 [rcuob/0]
root 10 0.0 0.0 0 0 ? S Jul10 0:00 [rcuob/1]
root 11 0.0 0.0 0 0 ? S Jul10 0:00 [rcuob/2]
root 12 0.0 0.0 0 0 ? S Jul10 0:00 [rcuob/3]
root 13 1.5 0.0 0 0 ? S Jul10 98:01 [rcu_sched]
root 14 0.4 0.0 0 0 ? S Jul10 26:19 [rcuos/0]
root 15 0.3 0.0 0 0 ? S Jul10 25:16 [rcuos/1]
root 16 0.3 0.0 0 0 ? S Jul10 22:59 [rcuos/2]
root 17 0.3 0.0 0 0 ? S Jul10 22:25 [rcuos/3]
root 18 2.0 0.0 0 0 ? S Jul10 132:56 [watchdog/0]
root 19 1.5 0.0 0 0 ? S Jul10 97:19 [watchdog/1]
root 20 1.4 0.0 0 0 ? S Jul10 93:34 [migration/1]
root 21 6.8 0.0 0 0 ? S Jul10 432:20 [ksoftirqd/1]
root 22 0.0 0.0 0 0 ? S Jul10 0:00 [kworker/1:0]
root 23 0.0 0.0 0 0 ? S< Jul10 0:00 [kworker/1:0H]
root 24 0.4 0.0 0 0 ? S Jul10 27:45 [watchdog/2]
root 25 0.6 0.0 0 0 ? S Jul10 42:32 [migration/2]
root 26 1.5 0.0 0 0 ? S Jul10 97:07 [ksoftirqd/2]
root 28 0.0 0.0 0 0 ? S< Jul10 0:00 [kworker/2:0H]
root 29 0.2 0.0 0 0 ? S Jul10 15:43 [watchdog/3]
root 30 0.7 0.0 0 0 ? S Jul10 48:06 [migration/3]
root 31 1.3 0.0 0 0 ? S Jul10 87:48 [ksoftirqd/3]
客户机分配了 32gb RAM 和 4 个核心。CPU 是 Intel(R) Xeon(R) CPU E5-2609。我知道主机是 Windows 系统。
iostat 的输出:
avg-cpu: %user %nice %system %iowait %steal %idle
0.31 0.01 3.67 6.67 0.00 89.35
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
scd0 0.00 0.00 0.00 48 0
sda 0.99 5.57 11.70 2129835 4477412
值得注意的是,ksoftirqd 和其他进程的 CPU 使用率/负载很高。有什么想法是什么原因造成的吗?虚拟机本身在其他系统上运行得很好,所以我猜这是主机/虚拟机-主机配置的问题。
答案1
服务器通过 IRQ(中断请求)与连接到它的设备进行通信。当设备发出中断时,如果 ksoftirqd 占用的 CPU 时间超过很小一部分,则表明机器的中断负载很大。
使用 lspci 检查日志
查看此链接以供参考:https://askubuntu.com/questions/7858/why-is-ksoftirqd-0-process-using-all-of-my-cpu