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 つに切り捨てることで、上位 5 つを読みやすい方法でリストできます (head -6ヘッダーも含めたいため を使用します)。

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]

topGNUのバッチ モード ( )も調べてみるといいでしょう-b

答え2

深く掘り下げるには、ここでの最良の行動は、

tprof -skex sleep 10

これにより、CPU を多く使用しているプロセスの詳細を示すレポートが生成され、関数および共有ライブラリ別の使用状況を詳細に確認できます。

答え3

以下のコマンドを使用するとtopasの出力と一致します

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

関連情報