如何理解 top 的输出,因为平均负载不断增加,但无法理解哪个进程正在消耗 CPU,因为进程的 %cpu 利用率最大为 0.7,但平均负载显示的值很高!那么如何知道瓶颈在哪里呢?
#top
top - 06:47:14 up 302 days, 21:14, 5 users, load average: 151.51, 142.09, 116.27
Tasks: 570 total, 1 running, 568 sleeping, 0 stopped, 1 zombie
%Cpu(s): 0.5 us, 0.5 sy, 0.0 ni, 0.0 id, 99.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 3838696 total, 3221216 used, 617480 free, 67004 buffers
KiB Swap: 0 total, 0 used, 0 free. 349404 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7188 mysql 20 0 1794140 266584 1084 S 0.7 6.9 511:44.15 mysqld
7591 ubuntu 20 0 23964 2008 1176 R 0.7 0.1 0:08.87 top
10983 root 20 0 277124 20132 1252 S 0.7 0.5 634:22.01 php
3382 root 20 0 282768 22020 1828 S 0.3 0.6 126:43.32 php
8570 root 20 0 17872 180 0 S 0.3 0.0 172:52.24 wrapper
8572 root 20 0 1958428 479468 304 S 0.3 12.5 538:40.04 java
11043 root 20 0 277116 20020 1232 S 0.3 0.5 361:08.73 php
1 root 20 0 37344 5944 760 S 0.0 0.2 11:53.34 init
2 root 20 0 0 0 0 S 0.0 0.0 0:06.09 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:18.23 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root 20 0 0 0 0 S 0.0 0.0 46:22.19 rcu_sched
8 root 20 0 0 0 0 S 0.0 0.0 38:55.10 rcuos/0
答案1
如果你能看到 top 的输出,你会发现只有 1 个进程在运行,1 个处于僵尸状态,568 个处于休眠状态,似乎有一个 Java 进程可能是造成负载的罪魁祸首,请检查 pmap