cpu.cfs_period_us
커널[1] 문서를 읽고 있는데 이 부분이 혼란스럽습니다.
3. Limit a group to 20% of 1 CPU.
With 50ms period, 10ms quota will be equivalent to 20% of 1 CPU.
# echo 10000 > cpu.cfs_quota_us /* quota = 10ms */
# echo 50000 > cpu.cfs_period_us /* period = 50ms */
By using a small period here we are ensuring a consistent latency
response at the expense of burst capacity.
"마침표를 사용"하면 차이점이 무엇인지 명확하지 않습니다.
무슨 뜻인가요 ensuring a consistent latency response at the expense of burst capacity
?
[1]https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt
답변1
그룹의 CPU 대역폭 소비가 해당 기간 동안 이 제한[할당량]을 초과하면 해당 계층 구조에 속한 작업이 제한되고 다음 기간까지 다시 실행이 허용되지 않습니다.
제가 말하려는 것은 1분에 CPU 시간을 10초로 구성하면 해당 시간을 초과하기 때문에 애플리케이션이 50초 동안 중지될 수 있다는 점을 지적하려는 것입니다. 최대 전력으로 10초간 연속 작동하고 50초간 작동하지 않습니다. 이는 가능한 한 빨리 매우 집중적인 계산이 필요한 애플리케이션에 유용합니다. 가끔.
반면에 매우 낮게 설정하면(예: 500us 중 50us) 애플리케이션은 0.05ms 동안만 실행되고 0.45ms 후에 중지되고 다시 시작됩니다. 50us의 버스트는 버스트가 아닙니다 :) ...그러나 애플리케이션은 최대 0.45ms 동안 중지됩니다. 이는 계산 집약적이지는 않지만 애플리케이션이 제한되는 시간에 따라 대기 시간이 늘어나므로 대기 시간이 매우 낮아야 하는 애플리케이션이 있는 경우에 유용합니다.
(의도적으로 불균형한 숫자를 사용함)