一次load高但是cpu占用率低的排查

load过高但是cpu占用率低的排查

过程描述

  • 某天晚上,短信受到报警,说mongodb服务器cpu load过高;
  • 登录到线上一看,使用top命令,发现load到了12(db服务器是4核)但是cpu占用率很低,当时就很疑惑;因为我之前一直以为load高,一定是cpu繁忙造成的,cpu占用应该很大才对
  • 再看了看top输出,cpu 的wait很高,经常持续在95%左右,查阅了资料,猜想是io过高


    屏幕快照 2015-12-18 上午1.29.29.png
  • 使用vmstat 2 5命令,查看io的情况。


    一次load高但是cpu占用率低的排查_第1张图片
    屏幕快照 2015-12-18 上午1.29.47.png

    bi和bo这一项,显示的就是服务器读写磁盘的情况,我对比了未报警正常的dbserver,明显偏高

  • 这个时候,需要看到各个进程读写磁盘的情况。网上搜索了一下,有一个iotop的工具,可以做到。执行需要sudo权限。正在我准备安装的时候,发现load降下去了,另外一个同事干掉了一个进程,他解释说,看见这个进程的日志有很多错误。现场没了。囧

其它

  • iotop的输出第一个名字是tid,我验证了一下,tid就是pid。网上搜索了一下,也验证了这个。

你可能感兴趣的:(一次load高但是cpu占用率低的排查)