PSコマンドの出力をCPU使用率でソートするには...|Laugh and grow fat

PSコマンドの出力をCPU使用率でソートするには...

あるサーバだけ、CPU使用率が90%近くなることがあり、その調査のためにどのプロセスがCPU使用率が高いかを調査することになった。

やったこと

で、定期的にPSコマンドの結果をログに出力することにしたのだが、CPU使用率順にソートされていないし、全部のプロセスの結果が出力されてしまうので、あとで見るのが面倒! ってことで、以下のコマンドでソートすることにした。

ps aux | sort -rk 3,4 | head -n 20

sortコマンドで、CPU使用率、MEM使用率順にソートして。headで20件だけ出力するようにした。

ちなみにOSは、RHEL5
psコマンドとか、sortコマンドってディストリビューション毎に異なるようなのでメンドイ。


で、調査のためには、以下のようなスクリプトをつくった。
が、cronで仕掛ける前に、問題となるプロセスがわかってしまった.... orz


#!/bin/sh
PSLOGFILE=/tmp/ps_out.log
date '+%Y/%m/%d %T'>> $PSLOGFILE
ps aux | sort -rk 3,4 | head -n 20 >> $PSLOGFILE
vmstat >> $PSLOGFILE
echo >> $PSLOGFILE