4核服务器cpu使用率10%负载飙到23.5故障排查
4核服务器cpu利用率10%负载却飙到23.5故障排查,cpu使用率和cpu负载是两回事儿,cpu使用率反应的是当前cpu的使用情况,cpu负载反应的是cpu任务的队列情况。遇到一个故障,一台4核服务器cpu利用率是10%负载却飙到23,先看下问题现场,截图如下:
先简单说下cpu使用率和负载,cpu使用率和cpu负载是两回事儿,cpu使用率反应的是当前cpu的使用情况,cpu负载反应的是cpu任务的队列情况,通常服务器负载的正常范围在cpu核心数*0.7,此台服务器计算后就是2.8,现在队列负载23.5远远超出此值。结合cpu的使用率只有10%看,当前跑的进程并不是cpu消耗型,很有可能是硬盘io、网络io、内存出现了瓶颈,导致任务执行不过来,cpu的任务队列堆积,排查后内存使用率和网络io都在正常范围,当查到硬盘io时数据如下:
好了,到此问题基本定位,是因为sdb的io跑满,导致了任务队列堵塞。继而去查到造成io堵塞的进程,发现有很多以前业务的find操作,在第一张图上也可以看出,查询后是老的业务逻辑,将find进程kill掉后,然后找到了对应的计划任务,将其删掉,问题解决,负载恢复到正常值