有时,我的服务器在“顶级”程序中会显示较高的平均负载(例如,四核计算机上的负载约为10),但是实际的CPU使用率并不是特别高。
我认为问题在于正在运行许多I / O密集型作业。如果顶部的“%CPU”值不是那么高,是否有任何简便的方法来识别导致负载的这些作业?
有时,我的服务器在“顶级”程序中会显示较高的平均负载(例如,四核计算机上的负载约为10),但是实际的CPU使用率并不是特别高。
我认为问题在于正在运行许多I / O密集型作业。如果顶部的“%CPU”值不是那么高,是否有任何简便的方法来识别导致负载的这些作业?
Answers:
要查找造成高负载的原因,您可以检查几件事。
vmstat -w
将向您显示ovierwiem(进程,交换,mem,cpu,io,系统) pmstat -P ALL
将为您提供每个cpu内核的统计信息(包含%iowait)iostat -x
寻找高%util或长时间等待或较大的平均队列大小
iotop
ps -ax
寻找状态D,该状态是不间断的睡眠(通常是IO),再运行一次,检查它们是否仍处于D状态
sar -b
-整体io活动 sar -d
-单个块设备io活动
top
命令时看到的摘要区域吗?