私の仕事では、Ubuntu 12.04.03 CLIを実行するデータリポジトリがあり、今朝ログインしたときに通常の情報を提供する代わりにチェックしていましたが、システム負荷が2を超えているため情報を表示できませんでした私はこれが何を意味するのだろうと思っていましたか?応答しなかったので、再起動したばかりでした。起動してすべてを実行するプロセスと関係があるのでしょうか。
top
またはuptime
コマンドを実行します。
$ uptime
19:36:03 up 5 days, 9:12, 8 users, load average: 0.05, 0.16, 0.21
$ top -bn1 | head -1
top - 19:36:07 up 5 days, 9:13, 8 users, load average: 0.05, 0.16, 0.21
記載されている負荷平均 ここにあります :
/proc/loadavg
The first three fields in this file are load average figures
giving the number of jobs in the run queue (state R) or waiting
for disk I/O (state D) averaged over 1, 5, and 15 minutes. They
are the same as the load average numbers given by uptime(1) and
other programs.
負荷平均を考慮してください:0.05, 0.16, 0.21
つまり、最後の1分間で、平均で0.05プロセスがリソースを待機しています。
負荷平均が2であることを心配する必要がありますか?一般に、負荷平均が使用可能なCPUの数よりも大きい場合、CPUスロットを待機する間、一部のプロセスがアイドル状態になる必要がありました。
負荷平均がnproc
の出力よりも小さい場合、心配する必要はありません。
参照: unix/linuxでの負荷平均とはどういう意味ですか? Braiamが指摘しているように、プロセスはCPUだけを待つ必要はありません: 負荷平均とCPU使用率を理解する
システム負荷またはシステム負荷平均
これは実行キュー、つまりリソース(cpu、i/oなど)が利用可能になるのを待機しているプロセスのキューです。
シングルコアのcpu
を、橋とプロセスを車とする単一の車線と考えてください。
今、この状況ではシステム負荷は
この数は、cpu
に従って正規化されていません。マルチプロセッサシステムでは、負荷2はデュアルコアプロセッサを使用している場合の100%の使用率を意味し、負荷4はクアッドコアプロセッサを使用している場合の100%の使用率を意味します。
を使用してシステム負荷を取得できます
uptime
cat /proc/loadavg
top
$ uptime 22:49:47 up 11:47、4 users、負荷平均:2.20、1.03、0.82
ここで、最後の3つの数値は、それぞれ1、5、および15分間のシステム負荷平均を表します。
上記の例は、平均して、直前の1分間に測定された実行キューでスケジュールされるのを待機しているプロセスが2.20あったことを示しています。
システム負荷はCPUコアの数に関連します。たとえば、クアッドコアCPU(4コア)がある場合、値1はシステム負荷が25%であり、4は100%であることを意味します。
2.0のシステム負荷はそれほど高くありません。マルチコアシステムでは、CPUがまだ部分的にアイドル状態になっている場合があります。
負荷平均は、CPUコアを一度に使用したいプロセスの数という観点から見たCPUコアの過負荷の尺度です。
以下は、シングルコア(シングルスレッド)CPUを想定しています。
.
CPUは何もしていません。プロセスがCPUの使用を開始する場合、それを使用するのはそれだけです。
1.
CPUは最大使用率ですが、CPUを使用するプロセス間の競合はゼロです。つまり、単一のプロセスのみが実行されているため、CPU時間の100%を要求できます。または、複数のプロセスが実行されていますが、100%CPUを要求しているプロセスはなく、それらを組み合わせたCPU使用率は100%になります。 CPUが完全に自力で動作していても、実行速度と同じ速さで動作しています。
1.0より大きい
CPUの使用率は最大であり、CPUを排他的に使用している場合よりも実行速度が遅いため、CPUを同時に使用したいプロセスが複数あります。たとえば、負荷平均が3.0の場合、プロセスは実行したい速度の3分の1で実行されています。負荷平均50.0は、他のすべてのプロセスが実行されているため、プロセスが実行したい速度の1/50で実行されていることを示します。つまり、1.0よりも高い数値は、使用可能なCPUがより多くのアクティブなプロセスに分割されていることを示しています。
マルチコアCPUを使用しても、図の意味は変わりませんが、解釈方法が変わります。たとえば、4コアのCPUがある場合、1.0の負荷は1つのコアで100%CPUを使用する1つのプロセスと同等ですが、他の3つのコアがあります。したがって、4コアCPUでは、最大効率のポイントは1.0ではなく4.0であり、すべてが1/3の効率で実行されるポイントは3.0ではなく12.0です。複雑さを増すために、1つのプロセスに複数のスレッドがあり、それぞれが独自のCPUを要求している場合があります。したがって、1つのプロセスがマルチスレッドの場合、4つのコアすべての100%を使用できます。
ターミナルuptimeと入力すると、次のようなものが表示されます:load averageそして、1、5、15分の負荷である3桁の数字。デュアルコアプロセッサがある場合、2は100%の使用率を意味し、1は50%の使用率などを意味します。