2コアCPU(4仮想CPUコア)を備えたCpanel(centos)サーバーを監視していますが、top
を使用してこの値を取得したため、過負荷になっているようです:
load average: 11.80, 13.30, 13.02
Cpu(s): 42.2%us, 11.7%sy, 0.0%ni, 35.6%id, 10.1%wa, 0.1%hi, 0.3%si, 0.0%st
しかし、(topまたはpsを使用して)プロセスリストを見ると、1%を超えるプロセスは使用されていません。
また、プロセスのCPU使用率(%)の合計は4であり、0%の値が丸められた数値であると仮定して0.04に変更した場合(10進数の1桁を使用して丸められた場合は0)、合計は11(まだ未満100%)。
このデータを正しく解釈するにはどうすればよいですか?CPUに過負荷をかけている隠れたプロセスがいくつかありますか?.
Linuxでは、ブロックされたプロセスも負荷平均に影響します。コマンド ps -Al
はすべてのプロセスをリストします。出力の2番目の列(状態を表すS)には、プロセスの状態が表示されます。ほとんどの場合、プロセスはディスク「D」を待機しています。これは、平均負荷にカウントされます。
Psのmanページからの状態の完全なリストは次のとおりです。
D Uninterruptible sleep (usually IO)
R Running or runnable (on run queue)
S Interruptible sleep (waiting for an event to complete)
T Stopped, either by a job control signal or because it is being
traced.
W paging (not valid since the 2.6.xx kernel)
X dead (should never be seen)
Z Defunct ("zombie") process, terminated but not reaped by its
parent.
サンプル出力
FS UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 1 0 0 80 0-4906 poll_s?00:00:23 init 1 S 0 2 0 0 80 0-0 kthrea?00:00:02 kthreadd 1 R 0 3 0 99 80 0-0?01:00:02ランナー 1 D 0 4 0 1 80 0-0?01:00:02ローダー
これらが唯一のプロセスである場合、CPUホグ「ランナー」用に約2の負荷、ディスクを待機しているローダー用にもう1つの負荷が表示されます。
ウィキペディア で入手できる情報は非常に正確です
アイドル状態のコンピューターのロード番号は0です。CPU(レディキューまたは実行キュー)を使用または待機している各プロセスは、ロード数を1ずつ増やします。ほとんどのUNIXシステムは、実行中(CPU上)または実行可能(待機中)のプロセスのみをカウントします。 CPU)の状態。ただし、Linuxには、中断できないスリープ状態(通常はディスクアクティビティを待機している)のプロセスも含まれているため、I/Oシステムがビジーまたはストールしているために多くのプロセスがI/Oでブロックされたままの場合、結果が著しく異なる可能性があります。 1 これには、たとえば、NFSサーバーの障害やメディアの速度低下(USB 1.xストレージデバイスなど)によるブロックプロセスが含まれます。このような状況では、負荷平均が高くなる可能性があります。これは、CPU使用率の実際の増加を反映していません(ただし、ユーザーが待機する必要がある時間についてはわかります)。
あなたが提供した上位の情報は、必ずしも過負荷を意味するものではありません。
むしろ、過負荷によって何らかの制限に達することを意味する場合、CPU制限、ネットワークおよび/またはディスクI/O制限、メモリ使用制限など、さまざまな側面がある可能性があります。
さまざまなCPU負荷/使用状況のビューを一致させようとしないでください。これらは通常、異なる意味であり、ビューも異なるタイムスタンプで収集されます(統計収集はアトミックではありません)。