web-dev-qa-db-ja.com

Unix / Linuxの平均負荷とはどういう意味ですか?

uptimeを実行すると、次のようになります。

10:50:30 up 366 days, 23:27,  1 user,  load average: 1.27, 2.06, 1.54

最後の数字はどういう意味ですか? manページには、「過去1分間、5分間、15分間のシステムの平均負荷」と書かれています。しかし、スケールは何ですか? 1.27は高いですか?低い?それは私のシステムに依存しますか?

69
John Fouhy

負荷平均は、CPUの注意を同時に要求する、平均でいくつのプロセスがあるかを示すゲージです。

一般に、1つのプロセスを100%で実行していて、それが永遠に続く場合、すべての値が「1」に近づくことを期待できます。

一般に、これは可能な限り効率的なコンピューティングであり、コンテキストの切り替えによる損失はありません。

ただし、最新のマルチタスクOSでは、CPUの注意を必要とするものが複数あるため、単一のプロセスからの負荷が中程度であれば、負荷平均は0.8から2の間で変動するはずです。

論理プロセッサが1つしかなくても、make -j 60を使用してカーネルを構築するなど、非常識なことをする場合、負荷平均は60に急上昇し、コンピューターは信じられないほど役に立たなくなります(コンテキストスイッチによる死)。

また、このメトリクスは、コア/ CPUの数とは関係ありません。 2コアシステムの場合、コア全体を消費する(もう1つはアイドル状態のままにする)1つのプロセスを実行すると、負荷平均は1.0になります。システムの負荷を決定するには、コアの数を把握し、自分で除算する必要があります。

60
Kent Fredric

男性5プロシージャ:

/ proc/loadavgこのファイルの最初の3つのフィールドは、実行キュー(状態R)または1、5、15分間の平均でディスクI/Oを待機している(状態D)ジョブの数を示す負荷平均値です。 。それらはuptime(1)や他のプログラムによって与えられる負荷平均数と同じです。

9
fho

一般に、特定の時間にアクティブなプロセスの数を測定しますが、それを計算するために使用されるメトリックは、システムによって異なります。それをかなりよく説明している私が見つけた唯一の記事は this one です。

3
John T

私はコースのリファレンスから引用します:

負荷平均は、一定期間の負荷数の平均です。以下のプロセスが考慮されます。

  • CPUでアクティブに実行されています。
  • 実行可能と見なされますが、CPUが使用可能になるのを待機しています。
  • スリープ中:つまり、ある種のリソース(通常はI/O)が利用可能になるのを待機しています。

負荷平均の解釈についてをさらに引用します

負荷平均は、次の例に示すように、3つの異なる数値セットを使用して表示されます。

最後の情報は、システムの平均負荷です。システムがシングルCPUシステムであるとすると、0.25は、過去1分間の平均で、システムが25%使用されていることを意味します。次の位置の0.12は、過去5分間で、システムが平均12%使用されたことを意味します。最終位置が0.15の場合、平均して過去15分間でシステムが15%使用されています。 2番目の位置に1.00の値が表示された場合、これは、過去5分間でシングルCPUシステムの平均使用率が100%であることを意味します。これは、システムを完全に使用したい場合に適しています。シングルCPUシステムの1.00を超える値は、システムが過剰に使用されたことを意味します。CPUを使用できるプロセスよりも多くのプロセスがCPUを必要としました。

複数のCPUがある場合(クアッドCPUシステムなど)、負荷平均数をCPUの数で割ります。この場合、たとえば、1分間の負荷平均が4.00であることは、システム全体が最後の1分間に100%(4.00/4)使用されていたことを意味します。

短期間の増加は通常問題ではありません。表示される高いピークは、アクティビティのバーストであり、新しいレベルではありません。たとえば、起動時に多くのプロセスが起動し、その後アクティビティが落ち着きます。 5分間および15分間の負荷平均に高いピークが見られる場合は、それが懸念の原因となる可能性があります。

2
Ely