CPU負荷は非常に高いですが、上部には目立つものはありません。

CPU負荷は非常に高いですが、上部には目立つものはありません。

私はVirtualMin 4.08.gpl GPLと2つのCPUコアを持つUbuntu Linux 12.04.1を実行しています。

過去数週間、ほぼ継続的に5をはるかに超える負荷平均で実行され、しばしば10に近く、時には20に近かった。

現在のCPU負荷平均:9.20(1分)8.20(5分)7.81(15分)

同時に、VirtualMinは次を返します。

Virtual Memory: 996 MB total, 15.44 MB used
Real Memory: 3.80 GB total, 972.43 MB used 
Local disk space: 915.94 GB total, 116.03 GB used

マシンを数回再起動(shutdown -rf now)すると、すぐに高いCPU負荷状態に戻ります。

高いCPU top(またはhtop)で実行すると、機密情報は返されません。実際に数分間見てみると、親プロジェクトのCPUが3%高くなる可能性があります。

Top はまた、次を返します。

Cpu(s): 2.2%us, 1.2%sy, 0.0%ni, 0.0%id, 96.5%wa, 0.0%hi, 0.2%si, 0.0%st

%wa高すぎて心配になります。 80%以上を維持しているようです。私はそれが%待機していることを知っていますが、それが実際に何を意味するのかわかりません。

どこでデバッグを開始し、CPU負荷の高い原因を見つけることができますか?

ベストアンサー1

これは「CPU負荷平均」ではなく、システム「負荷平均」です。これは必ずしもCPUが使用中であるという意味ではありませんが、システムの一部が使用中であることを意味します。この値はより詳細な説明にあります/proc/loadavgman proc

/proc/loadavg

ファイルの最初の3つのフィールドはロード平均値で、平均1分、5分、15分間キューで実行されているか(ステータスR)、ディスクI / Oを待っている(ステータスD)ジョブの数を提供します。これは、uptime(1)および他のプログラムによって提供されるのと同じ負荷平均です。 4番目のフィールドは、スラッシュ(/)で区切られた2つの数字で構成されています。 1つ目は、現在実行可能なカーネルスケジューリングエンティティ(プロセス、スレッド)の数です。スラッシュの後の値は、現在システムに存在するカーネルスケジューリングエンティティの数です。 5番目のフィールドは、システムで最後に作成されたプロセスのPIDです。

したがって、表示されるのは実行中またはディスクを待つ平均プロセスです。

負荷平均が20の場合、「実行中」または「待機」状態のプロセスが平均20個あることを意味します。負荷平均は非常に高く、CPUは非常に低く、負荷平均は非常に低く、CPUは非常に高い場合があります。なぜなら互いに関係がないからです。

%wa特定のプロセスが警告の頻度でディスクを損傷し、他のすべてのプロセスの速度を低下させる可能性があるため、Dプロセスから始めて犯人を見つけます。これはwa、IOがほとんどの親実装を待っていることを意味します。

おすすめ記事