![所有 CPU 都很忙,平均负载很高,但任务 CPU 使用率不加起来](https://linux22.com/image/719979/%E6%89%80%E6%9C%89%20CPU%20%E9%83%BD%E5%BE%88%E5%BF%99%EF%BC%8C%E5%B9%B3%E5%9D%87%E8%B4%9F%E8%BD%BD%E5%BE%88%E9%AB%98%EF%BC%8C%E4%BD%86%E4%BB%BB%E5%8A%A1%20CPU%20%E4%BD%BF%E7%94%A8%E7%8E%87%E4%B8%8D%E5%8A%A0%E8%B5%B7%E6%9D%A5.png)
查看下面的输出,有人能告诉我是什么导致了高负载吗?
CentOs 6 Linux 2.6.32-642.4.2.el6.x86_64(4 CPU)
我怀疑这个sar
数字很高,但我没有这方面的经验。
[root@a1 ~]# sar -b 1 3
01:08:22 PM tps rtps wtps bread/s bwrtn/s
01:08:23 PM 225.74 7.92 217.82 269.31 13362.38
01:08:24 PM 116.67 74.51 42.16 4062.75 188.24
01:08:25 PM 161.22 64.29 96.94 3240.82 840.82
Average: 167.77 48.84 118.94 2522.26 4821.26
[root@a1 ~]# sar -w 1 3
01:09:46 PM proc/s cswch/s
01:09:47 PM 13.13 6662.63
01:09:48 PM 17.82 3891.09
01:09:49 PM 20.20 5031.31
Average: 17.06 5186.29
htop(视频,显示所有繁忙的 CPU)
https://www.lot-art.com/htop.mp4
top(视频,显示每个 CPU 核心正在做什么)
https://www.lot-art.com/top.mp4
ps auxf
输出
https://www.lot-art.com/ps_auxf.txt
pidstat -w
输出
https://www.lot-art.com/pidstat_w.txt
答案1
您的高使用率来自 mysql。您有一些查询消耗了太多资源,php-cgi 正在等待数据库查询完成,httpd 正在等待 php-cgi 返回。如果您确定哪些查询导致了这种消耗,则可以优化这些查询。
而且您的负载不是那么高。您有 4 个处理器,任何接近 4 的负载都不算高。最大负载 5.4 是可以接受的。