16.2. 실시간 커널의 스케줄러 제한
실시간 커널에는 실시간 작업에서 사용할 대역폭을 할당할 수 있는 보호 메커니즘이 포함되어 있습니다. 보호 메커니즘을 실시간 스케줄러 제한이라고 합니다.
실시간 제한 메커니즘의 기본값은 실시간 작업에서 CPU 시간의 95%를 사용할 수 있음을 정의합니다. 나머지 5%는 Cryostat _OTHER 및 유사한 스케줄링 정책에서 실행되는 작업과 같이 실시간이 아닌 작업에 사용됩니다. 단일 실시간 작업이 95% CPU 시간 슬롯을 차지하는 경우 해당 CPU의 나머지 실시간 작업이 실행되지 않는다는 점에 유의해야 합니다. 실시간이 아닌 작업만 나머지 5%의 CPU 시간을 사용합니다. 기본값은 다음과 같은 성능에 영향을 미칠 수 있습니다.
- 실시간 작업에는 사용 가능한 최대 95%의 CPU 시간이 있으며 이는 성능에 영향을 미칠 수 있습니다.
- 실시간 작업은 실시간이 아닌 작업을 실행할 수 없으므로 시스템을 잠그지 않습니다.
실시간 스케줄러 제한은 /proc 파일 시스템의 다음 매개변수에 의해 제어됩니다.
/proc/sys/kernel/sched_rt_period_us매개변수-
CPU 대역폭의 100%
인 Cryostat(마이크로초)의 기간을 정의합니다. 기본값은 1,000,000 Cryostats이며 1 초입니다. 마침표 값의 변경 사항은 매우 낮거나 낮으면 문제가 발생할 수 있으므로 신중하게 고려해야 합니다. /proc/sys/kernel/sched_rt_runtime_us매개변수-
모든 실시간 작업에 사용할 수 있는 총 대역폭을 정의합니다. 기본값은 950,000 Cryostats (0.95 s)이며 이는 CPU 대역폭의 95%입니다. 값을
-1로 설정하면 최대 100%의 CPU 시간을 사용하도록 실시간 작업이 구성됩니다. 이는 실시간 작업이 잘 엔지니어링되어 바인딩되지 않은 폴링 루프와 같은 명확한 경고 사항이 없는 경우에만 적합합니다.