これに従ってくださいhttps://unix.stackexchange.com/a/279354/108702、私は逃げた。
lscpu | grep -E '^Thread|^Core|^Socket|^CPU\('
CPU(s): 8
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
しかしtop
:
top - 01:06:47 up 51 days, 6:24, 2 users, load average: 23.67, 22.50, 22.40
Tasks: 5989 total, 1 running, 5919 sleeping, 0 stopped, 0 zombie
%Cpu(s): 84.6 us, 2.7 sy, 0.0 ni, 12.3 id, 0.4 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 32799488 total, 940020 free, 18284088 used, 13575380 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 14034316 avail Mem
私は何を見逃していますか?最大負荷は2 * 4 * 1 = 8(使用率100%)になると予想されますか? (そして高すぎる?)
ベストアンサー1
TL; DR、23はおそらく高すぎるでしょう。
ロードについて考える最も簡単な方法は、「CPU を使用するキューのプロセス数」です。負荷が CPU の数と正確に一致する場合、CPU が必要とするプロセスの数が使用可能な CPU と正確に一致するため、使用量が理想的です。負荷高い使用可能なCPUの数を超えると、一部のプロセスはCPUが利用可能になるのを待つ必要があり、リソースが不足しているため理想的なスループットを達成できません。負荷がCPUの数より少ない場合、一部のCPUはアイドル状態になるため、このデバイスでより多くのスループットを得ることができます。
CPU使用率は瞬間消費量を知ることができますが、実際にはすべてのコアが100%で実行されている場合は理想的です。ここで重要なのは負荷平均です。キューがどれだけ大きいか。たとえば、マクドナルドでは、1人の従業員が顧客に100%サービスを提供することは大丈夫です。重要なのは、どれだけの人がサービスを受けるのを待っているかです。これが負荷平均が教えてくれるものです。
もちろん、これは単純化されたものであり、技術的な詳細と微妙さがたくさん含まれていますが、私たちの95%はシステム要件を測定し、負荷平均が知らせる解釈のための十分な規則です。