公司的云服务, 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~~
在做什么操作,,在分析·。