이것을 따르라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%로 실행되는 경우 이상적일 수 있습니다. 여기서 중요한 것은 로드 평균입니다. 대기열이 얼마나 큰지. 예를 들어, 맥도날드에서는 한 명의 직원이 고객에게 100% 서비스를 제공하는 것은 괜찮습니다. 중요한 것은 얼마나 많은 사람들이 서비스를 받기를 기다리고 있는지입니다. 이것이 로드 평균이 알려주는 것입니다.
물론 이는 단순화된 것이며 기술적인 세부 사항과 미묘함이 많이 포함되어 있지만 우리 중 95%에게는 시스템 요구 사항을 측정하고 로드 평균이 알려주는 해석을 위한 충분한 규칙입니다.
답변2
로드 평균 1은 단일 CPU 또는 코어가 지난 X분 동안 100% 사용되었음을 의미합니다(1의 위치에 따라 첫 번째 위치에 있다고 가정하면 1분).
따라서 4개 코어의 경우 로드 평균 4xx는 모든 코어가 100% 사용 중임을 의미합니다. 수행 중인 모든 작업이 하이퍼스레딩에 적합하다고 가정하더라도 100% 사용률은 LA 8xx입니다...
이것은 흥미로울 수 있습니다 -https://www.tecmint.com/understand-linux-load-averages-and-monitor-performance/