Linodeには奇妙な動作をしているボックスがあります。時々CPUとディスクI / Oが100%になり、サーバーが応答しなくなり、起動する必要があります。私は何が起こっているかをよりよく調査したいのですが、そのCPUとI / Oのすべてに責任を負っている人を見つける方法がわかりません。Gentoo 2.6.18を実行しています。
Linodeには奇妙な動作をしているボックスがあります。時々CPUとディスクI / Oが100%になり、サーバーが応答しなくなり、起動する必要があります。私は何が起こっているかをよりよく調査したいのですが、そのCPUとI / Oのすべてに責任を負っている人を見つける方法がわかりません。Gentoo 2.6.18を実行しています。
回答:
次のようなことを試みることができます:
while true; do ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10 >> logfile.txt; printf "\n" >> logfile.txt; sleep 3; done
CPU使用率の観点から上位10のプロセスが表示されます。表示されるプロセスの数を変更するには、「head -10」の10を別の数に変更し、「sleep 3」の3を変更するか「sleep 3」の部分を完全に取り出すことで更新する頻度を変更します。
sort -nr
(私のUbuntu / Debianのツゲ上に少なくとも)数値的にソートするために、より良いだろう
頂上をチェックアウトすると、必要なほぼすべてのバイナリログが書き込まれ、guiなどのトップを使用してその日のタイムスライスを確認できます(デフォルトでは5分ごとにデータを取得します)。http://www.atcomputing.nl/Tools/atop/
他の答えは、現在何が起こっているかをどのように見ることができるかを示しているだけであり、システムがリブートされた場合は役に立ちません。
この情報を後世(または請求、その他の用途)のために記録する場合、必要なのはプロセスアカウンティングです。
ここに私が見つけたHOWTOがありますが、正直に言うと、プロセスアカウンティングを使用してから10年が経ちました。
ほぼリアルタイムの監視のためのショーンのソリューションへのよりユーザーフレンドリーなアプローチ:
while true; do clear; ps -eo pcpu,pmem,pid,user,args --sort=-pcpu c|head -20; sleep 1; done
これにより、1秒ごとに更新される上位20プロセスの静的ビューが提供されます。psコマンドの「c」オプションは、argsコマンド全体ではなく、プロセス実行可能ファイル名を出力します。代わりにコマンド情報全体が必要な場合は、このオプションを省略できます。%memory usage列も追加されました。