web-dev-qa-db-ja.com

Linuxシステムで100%を超えるCPU使用率

実稼働Linuxサーバーの1つでは、CPU使用率が100 %を超えており、場合によっては250%です。

どのプロセスがより多くのCPU使用率を使用しているか、どこでCPU使用率ログを見つけることができますか?

OS:RHEL 5.5

2
Raj

CPU使用率は、単一のCPUを基準にして測定されます。各CPUの最大値は100%であるため、4 CPUシステムの最大CPU使用率は400%になります。

11

topコマンドを使用してみてください

man top詳細については

3
ob_dev

sar ユーティリティは、システムがオンになっている場合、システムに関するいくつかの統計を収集します。それらにアクセスする最も簡単な方法は、コマンドラインでsarと入力することです。

はるかに優れたオプションは、Cacti、Munin、Zabbixなどの監視システムをインストールすることです。 (Nagiosはグラフを作成できますが、これは得意ではありません。)ServerFaultには、どの監視システムが最適かについて、すでに多くの質問があります。それらの1つをインストールすると、それなしでどのように生活したかを思い出すのに苦労します。

通常、これらは、どのプロセスが常にすべてのCPUを使用していたかを示しません。そのためには、その時点でのtopまたはhtopが最善の策です。 10%のCPUを使用する25のApacheプロセスは、それぞれtopで、250%のCPUを使用する単一のMySQLプロセスとは異なって表示されることに注意してください。

注目すべきもう1つの重要な指標は、「負荷平均」です。これは、プロセッサに接続するのを現在待機しているプロセスの数を示しています。これは、システムの使用がどれだけ遅いかを示す非常に良い指標です。

CPU使用率に関する別の注意点として、仮想マシンはVMのニーズに応じてCPU容量を動的に変更できます。 VM内からトップで9999%のCPUを使用しているように見える単一のプロセスを見ました。これに関してVMWareから提供されたアドバイスは、「VM内から測定されたメトリックを信頼しない」です。

3
Ladadadada

もう1つのオプションは、psコマンドを使用して、CPU使用率で並べ替えることです。

ps aux --sort=+cpu
2
Mattias Ahnberg

プロセス使用率のログはありません。このためにatopのようなものをインストールすることをお勧めします。以前はGNU "システムアカウンティング"パッケージもありましたが、IIRCはあまり適していません。

1
tripleee

私は 回答済み これと同様の質問があります。自分のニーズに合わせてそのスクリプトを拡張することをお勧めします。基本的に、コマンドps -eo pcpu,pid,user,args | sort -k 1 -r | head -n 5は意味のある出力を提供します。それを自動化し、後で分析するために出力をログに記録することもできます。

0
bintut

使用率の測定に何を使用するかはわかりませんが、次のものを使用できます。

cat /proc/loadavg 
0
Alok Save

他の人はトップに言及しました。

必要に応じて、cronでバッチモードでtop -b -n1 | headを実行し、出力をどこかに保存して、上位のプロセスを追跡できます。

0
Not Now