Unix/Linuxでのロードアベレージの意味は?

cpu-usage linux unix uptime

uptimeを実行すると、こんな感じになります

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

最後の数字の意味は?マニュアルページには「過去1分、5分、15分のシステムの負荷平均」と書いてありますが、これは何を意味しているのでしょうか?しかし、スケールは何ですか?1.27は高い?低い?私のシステムに依存していますか?

  69  John Fouhy  2009-08-16


ベストアンサー

負荷平均は、平均してどのくらいのプロセスが同時にCPUの注意を必要としているかを示す指標です

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

一般的に、これはあなたが得ることができるのと同じくらい効率的なコンピューティングであり、コンテキストスイッチによる損失はありません

しかし、最近のマルチタスクOSでは、CPUの注意を必要とするものが1つ以上あるので、1つのプロセスからの適度な負荷の下では、負荷平均は0.8~2の間で浮いているはずです

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

また、この指標はコア数/CPU数に関係なく算出されます。2コアのシステムでは、コア全体を消費する1つのプロセスを実行すると(他のプロセスはアイドルのままで)、負荷平均は1.0になります。システムの負荷を判断するには、コア数を知り、自分で分割する必要があります

61  Kent Fredric  2009-08-16


男5 proc

/proc/loadavg このファイルの最初の3つのフィールドは、ランキュー(状態R)またはディスクI/O待ち(状態D)のジョブ数を1分、5分、15分で平均化した負荷平均値です。これらは uptime(1) や他のプログラムが示す負荷平均値と同じです

10  fho  2013-07-24


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

3  John T  2009-08-16


講座の参考文献から引用しています

負荷平均とは、所定の期間の負荷数の平均値である。であるプロセスを考慮します

  • 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 の数で割ることになります。この場合、例えば、1分間の負荷平均が4.00であれば、システム全体では最後の1分間に100%(4.00/4)使用されていたことになります

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

3  Ely  2015-05-14


タイトルとURLをコピーしました