
시스템에 2개의 프로세서가 있다고 가정합니다. 이제 cgroup을 생성하고 1개의 프로세서만 사용하도록 그룹을 구성합니다. (요점을 증명하기 위해) 로드 평균이 5가 되도록 충분한 프로세스로 채우십시오. 이제는 절망적으로 느립니다.
/proc/loadavg
다른 사용자가 대기 시간 없이 다른 CPU를 자유롭게 사용할 수 있더라도 로드 평균도 5라고 가정합니다 .
맞습니까? 이 출처를 인용해도 될까요?
답변1
당신의 이해가 정확합니다. 이 지표는 전체 시스템이 과부하되었다는 잘못된 인상을 줄 수 있는 반면, 특정 cgroup만 과부하되었음을 의미할 수도 있습니다.
로드 평균은 실행 중인 작업 양을 시스템 전체에서 측정한 것입니다(참조:/proc/loadavg
에 설명되어 있습니다 .man proc
).
동시에,man cgroups
, cpu
컨트롤러의 경우:
시스템이 사용량이 많을 때 Cgroup은 최소 "CPU 공유" 수를 보장받습니다. CPU가 사용 중이지 않은 경우 cgroup의 CPU 사용량이 제한되지 않습니다.
따라서 다른 사용자가 CPU를 사용하지 않으면 cgroup이 모든 CPU를 차지합니다. 그렇지 않으면 cgroup에 설정된 제한이 적용됩니다(가설의 예에서는 프로세서 1개).