AIX 服务器中的 CPU 使用率监控

AIX 服务器中的 CPU 使用率监控

为了监视 AIX 服务器中的 CPU 使用情况,我使用了每 10 分钟执行一次的以下脚本。

lparstat 2 10 > cpu
usage=$(tail -10 cpu | awk 'BEGIN {sum=0;} {sum+=$4} END{print int(100-sum/10)}')


if [[ $usage -ge 90 ]]; then
# mail the error and cpu file to admin
# displaying this for testing purposes
echo "CPU usage off the charts!!!"
cat cpu
fi

但是,如果 CPU 使用率高于 90%,我需要列出使用 CPU 的前 5 个进程。

我该如何实现这一目标?

答案1

您可以通过限制列、首先按 CPU 使用率最高的方式对它们进行排序,然后截断到前 5 个(使用head -6,因为我们还想包含标题),以一种相当易读的方式列出前 5 个:

ps -eo pcpu,pid,args | sort -k 1 -r | head -6

输出看起来像这样:

%CPU   PID COMMAND
 2.0 30531 -bash
 0.0 30673 head -6
 0.0 30672 sort -k 1 -r
 0.0 30671 ps -eo pcpu,pid,args
 0.0 30670 [flush-253:0]

您可能还想研究一下 GNUtop的批处理模式 ( -b)。

答案2

对于深度潜水,最好的做法是跑步

tprof -skex sleep 10

这将为您提供一份报告,详细说明使用高 CPU 的进程,然后深入了解函数和共享库的使用情况。

答案3

您可以使用以下命令它将与 topas 输出匹配

ps -ef | egrep -v "STIME|$LOGNAME" | sort +3 -r | head -n 15

相关内容