GNU/Linux >> Linux の 問題 >  >> Linux

Linux /proc/loadavg

/proc/loadavg

<ブロック引用>

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

4 番目のフィールドは、アラッシュ (/) で区切られた 2 つの数字で構成されます。これらの最初のものは、現在実行中のカーネル スケジューリング エンティティ (プロセス、スレッド) の数です。これは、CPU の数以下になります。スラッシュの後の値は、現在システムに存在するカーネル スケジューリング エンティティの数です。

5 番目のフィールドは、システムで最近作成されたプロセスの PID です。


受け入れられた回答にコメントしたいと思います。

<ブロック引用>

4 番目のフィールドは、スラッシュ (/) で区切られた 2 つの数字で構成されます。これらの 1 つ目は、現在実行中のカーネル スケジューリング エンティティ (プロセス、スレッド) の数です。これは CPU の数以下になります。

入力から整数 N を読み取り、N 個のスレッドを作成して永久に実行するテスト プログラムを作成しました。 RHEL 6.5 コンピュータには 8 つのプロセッサがあり、各プロセッサにはハイパー スレッディングがあります。とにかく、テストを実行して 128 のスレッドを作成すると、4 番目のフィールドの値が 128 より大きい値 (たとえば 135) であることがわかります。これは明らかに CPU の数よりも大きくなっています。この投稿は私の観察を裏付けています:http://juliano.info/en/Blog:Memory_Leak/Understanding_the_Linux_load_average

<ブロック引用>

proc(5) マニュアル ページ (2009 年 3 月のバージョン 3.21 のマニュアル ページ) の現在の説明が間違っていることに注意してください。 4 番目のフィールドの最初の数値は、現在実行中のスケジューリング エンティティの数として報告されるため、CPU の数を超えることはできないと予測されます。これは、この値が実行可能なスレッドの現在の数を報告する実際の実装と一致しません。


<ブロック引用>

最初の 3 つの列は、最後の 1、5、および 15 分間の CPU および I/O 使用率を測定します。 4 番目の列には、現在実行中のプロセスの数とプロセスの総数が表示されます。最後の列には、最後に使用されたプロセス ID が表示されます。

https://docs.fedoraproject.org/en-US/Fedora/17/html/System_Administrators_Guide/s2-proc-loadavg.html


Linux
  1. Linux/procファイルシステムの調査

  2. Linux:/ dev / console、/ dev / tty、/ dev / tty0の違いは?

  3. Linux – / usr/binと/usr/sbinを/bin(gnu / linux)にマージしますか?

  1. Unix / Linux でプロセスのパスを取得するにはどうすればよいですか

  2. Linux /proc/id/maps について

  3. sysctl と /proc/* への直接書き込み

  1. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  2. Linux – / proc/mntを/proc/ mountsにリンクしますか?

  3. Linux – / proc / cpuinfo内のプロセッサの数?