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


68

実行すると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は高いですか?低い?システムに依存しますか?


2
マルチコアCPUシステムで負荷平均をどのように解釈する必要があるのでしょうか。
nagul 09

3
一般的な経験則として、負荷平均をマルチコアシステムのCPU数で除算する必要があります。したがって、デュアルコアシステムでの2.0の負荷は、シングルコアシステムでの1.0とほぼ同等です。これは、ディスクI / Oやネットワークトラフィックなどの理由で完全に真実ではありませんが、負荷はとにかく大まかな見積もりの​​ようなものです。
マイククーパー

1
私はこのブログは本当に重宝:、LinuxのCPU負荷を理解する
atmaish

回答:


59

負荷平均は、CPUの注意を同時に要求するプロセスの平均数のゲージです。

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

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

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

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

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


1
それで、負荷平均が1未満であるということは、「プロセスは一般に待機する必要がない」ことを意味しますか?負荷平均2を「各プロセスが理想的な状態の場合の約2倍の時間を要する」と解釈できますか?(私も心配するI / Oがあることを知っています)
ジョンFouhy

はい、それは理にかなっています、つまりIOを無視します;)
ケントフレドリック

@KentFredric「一般的に、これは可能な限り効率的なコンピューティングであり、コンテキスト切り替えによる損失はありません。」... 1つのプロセスが常に100%で効率的に実行されていますか?確かに私はここで基本的な何かを見逃しています。どういう意味ですか?1つのプロセスがすべてのCPUリソースを占有していると、どのように効率的であると説明できるのでしょうか。
オタク

2
100%で実行されているプロセスは「効率的」ではないようですが、プロセスが20%のみを使用するように任意に制限すると、5倍の時間がかかります。したがって、ここで効率とは「最適なリソース使用率」を意味します。
ケントフレドリック

1
したがって、nコアシステムの場合、負荷平均nは、各コアがプロセスを100%処理している/行っていたため、最も効率的であることを意味しますか?
joshreesjones

9

man 5 proc:

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


3

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


2
そのリンクの日付は'03です。それ以来、Linux 2.6がリリースされました。(2.0を使用していることに注意してください。Ouch。)メトリックは、実際にはそのページに記載されているものとは多少異なるように見えます。
ケントフレドリック

これは、2006年末の記事です。リンクされた記事と同じ
nagul

リンクは引き続き機能し、端末の出力は2001年からのものです。😂なんて素晴らしい
MS Berends

2

私はコースの参照から引用します:

負荷平均は、一定期間の負荷数の平均です。次のプロセスを考慮します。

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

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

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

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

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

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


参照へのリンクを追加すると便利です。
ピールズ

それは難しいです。これは、LFCS試験の準備をするためのLinux Foundationのオンラインコースです。
イリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.