稼働時間+ CPU負荷平均[オフ]

稼働時間+ CPU負荷平均[オフ]

次のCPUの詳細があります。

more lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                32
On-line CPU(s) list:   0-31
Thread(s) per core:    2
Core(s) per socket:    8

稼働時間表示

uptime
 07:41:41 up 40 days, 11 min,  2 users,  load average: 17.82, 23.40, 24.73

したがって、CPUは32個です(コアあたりのスレッド数:2)。

稼働時間の高いCPU負荷平均値に関しては、これらの値は正常ですか?

負荷平均:17.82、23.40、24.73

答え1

これは難しい質問です。

負荷平均がCPUの数より高い場合(長すぎる)、キューは待機中です。

しかし、その数が少ない場合は意味がありません。 CPUを100%使用しているが操作を完了できないプロセスがある可能性があります。

一方、優先順位の低いバッチプロセスが多い場合は、リアルタイムの期限はありません。これにより負荷平均が上昇する可能性がありますが、機器の性能には影響しません。

短い答えは、状況によって異なります。

この場合:

システムが有用なタスクを実行している場合にのみ慌てる理由はありません。ただし、ワークロードに従うことができない(非並列)操作がある可能性があり、負荷平均はこれを知らせません。

答え2

以下のコマンドを確認してください。

最初の方法

ホストに構成されているプロセッサーの数を確認してください。

    cat /proc/cpuinfo | grep -i processor| wc -l

私たちが得た出力は次のようになります4。その後、負荷平均は4に達します。 4つを超えると問題がある。

注:(許容される)平均負荷は、構成されたコアプロセッサの数によって直接異なります。

2番目の方法

次のスクリプトを使用して、負荷平均が正常であることを確認できます。

    #!/bin/bash

    processor_count=`cat /proc/cpuinfo | grep -i processor| wc -l`
    echo $processor_count

    w| awk 'NR==1 {print $1=$2=$3=$4=$5=" ";print $0}'| sed -r "s/^\s+//g"|awk -F ":" '{print $2}'| awk -v pr="$processor_count" -F "," '{if (($1 > pr) || ($2 > pr) || ($3 > pr)){print "Load average is high and its above 100% of utilization"}else{print "load average is fine"}}'

関連情報