技术解析

求教,云服务器的 load average 很高,可是 cpu 使用情况并不严重,应该如何排查
0
2021-07-02 23:31:03
idczone

公司的云服务, load average 之前降到 1 左右。 但是现在 load average 突然就窜到 50+甚至 80+

top 命令下查看感觉 cpu 的占有情况并不严重


Tasks: 159 total,   1 running, 144 sleeping,  14 stopped,   0 zombie
Cpu(s):  2.0%us,  1.3%sy,  0.0%ni, 96.2%id,  0.1%wa,  0.0%hi,  0.2%si,  0.2%st
Mem:  16330820k total, 16169528k used,   161292k free,  1130808k buffers
Swap:        0k total,        0k used,        0k free, 10619988k cached

只有一个java进程占用15%的cpu和mem。其他进程都不足1%。

机器是4核cpu。


看下 vmstat 1 的 r 高不高,还有 iostat 也可以看下


vmstat 当时是 r1 b0
感觉是线上的业务有问题,刚刚重启了一次 load average 就下去了。
但是业务整体的资源占用情况并不严重,虽然 cpu 占用的波动不小,但是平均下来应该不到单核的 20%。

一般这种情况都是 IO

传统 apache 应用 loadavg 几百很正常, 就这一两个因素啥也不是

看 iowait, 云服务器如果用的云硬盘性能非常差的。

iotop 命令查看哪个进程负载比较高。。。

我最近也有碰到这种情况,可能有人采集网站吧

你云主机上放的图片多吗

查看进程的中有关的 IO 的状态。

```shell
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
xvda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
xvdb 0.00 0.00 1.00 0.00 8.00 0.00 8.00 0.03 33.00 32.00 3.20

```
这是一次 iostat -x
这台机器整体上就是一个 java 服务,数据库服务器部署在其他地方,存图片主要用七牛,也有少量原始图片存在本机。
整体感觉 IO 的使用程度比较低的。


现在的 load average 大概是 4.0+ 6.0+ 5.0+ 这个样子。

80%是代码问题,或者说是 sql 没写好。


不像啊。
从周一调优之后连跑接近 3 天,整体都保持在 1 以下。而且根据统计这三天的实际业务量是比平常还要多的。
然后昨天突然坐火箭似的窜上去了。
数据库方面,慢查询的记录也比较少。

只能通过 log 分析了,看下高的时间段的应用 log~~
在做什么操作,,在分析·。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服