sar -q
の出力について質問します。誰かがrunq-sz
を理解してくれると助かります。
CPUスレッドが8 cpu threads
上のRHEL 7.2
であるシステムがあります。
[ywatanabe@Host2 ~]$ cat /proc/cpuinfo | grep processor | wc -l
8
以下は私のシステムからのsar -q
の結果ですが、runq-sz
はldavg-1
と比較してlowのようです。
runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
05:10:01 PM 0 361 0.29 1.68 2.14 0
05:11:01 PM 0 363 1.18 1.61 2.08 2
05:12:01 PM 0 363 7.03 3.15 2.58 1
05:13:01 PM 0 365 8.12 4.15 2.96 1
05:14:01 PM 3 371 7.40 4.64 3.20 1
05:15:01 PM 2 370 7.57 5.26 3.51 1
05:16:01 PM 0 366 8.42 5.90 3.84 1
05:17:01 PM 0 365 8.78 6.45 4.16 1
05:18:01 PM 0 363 7.05 6.40 4.28 2
05:19:02 PM 1 364 8.05 6.74 4.53 0
05:20:01 PM 0 367 7.96 6.96 4.74 1
05:21:01 PM 0 367 7.86 7.11 4.93 1
05:22:01 PM 1 366 7.84 7.31 5.14 0
man sar
から、runq-sz
は実行キュー内のタスクの数を表し、状態は TASK_RUNNING であり、ps
のR状態に対応すると考えていました。
runq-sz
Run queue length (number of tasks waiting for run time).
runq-sz
は実際には何を表していますか?
このマニュアルページには、このプロパティの詳細な説明があります。
runq-sz
CPUの実行を待機しているメモリ内のカーネルスレッドの数。通常、この値は2未満である必要があります。一貫して高い値は、システムがCPUにバインドされている可能性があることを意味します。
多くの「インジケーター」の場合と同様に、パフォーマンスの問題があるかどうかを解釈するには、それらを互いに組み合わせて使用する必要があります。この特定のインジケーターは、システムのCPU時間が不足しているかどうかを示します。
一方、load1、5、15は、実行キューにあるが、実行されるまで待機するように強制されているプロセスを示します。 load1,5,15の種類は、システムの一般的な傾向と、待機中のプロセスが多い(負荷の上昇)か、下降傾向かを示します。しかし、プロセスはload1,5,15を使用してさまざまなことを待つことができます。通常、負荷が1,5,15回高い場合、ブロックしているのはI/Oです。
Runq-szを使用すると、CPUでの時間を待っています。