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

相關內容