서로 다른 cpu.cfs_period_us 값의 차이점은 무엇입니까?

서로 다른 cpu.cfs_period_us 값의 차이점은 무엇입니까?

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 동안 중지됩니다. 이는 계산 집약적이지는 않지만 애플리케이션이 제한되는 시간에 따라 대기 시간이 늘어나므로 대기 시간이 매우 낮아야 하는 애플리케이션이 있는 경우에 유용합니다.

(의도적으로 불균형한 숫자를 사용함)

관련 정보