작업 유형 (TT)은 Linux의 대체 CPU 스케줄러입니다.
작업 유형 (TT) 스케줄러의 목표는 동작에 따라 작업 유형을 감지하고 유형에 따라 스케줄링을 제어하는 것입니다. 5 가지 유형이 있습니다.
tasks.ods 에서 설명 및 탐지 규칙을 찾으십시오
작업 유형의 이점은 스케줄러가 더 많은 제어를하고 CPU에서 다음에 실행할 최상의 작업을 선택할 수 있도록하는 것입니다.
TT는 Vruntime 계산에서 RT 작업에 -20 PRIO를 제공합니다. 이것은 다른 작업에 대한 RT 작업을 향상시킵니다. 선점 규칙은 RT 작업이 다른 유형보다 상대적으로 적기 때문에 RT 작업이 우선 순위가있는 순전히 HRRN입니다. 하드 레벨 피킹 대신 HRRN을 사용하는 이유는 예비를 부드럽게하고 기아의 기회를 방지하기 때문입니다.
CONFIG_SCHED_DEBUG=y 로 컴파일해야합니다. 작업 정보 task_type 의 출력에 필드를 추가했습니다. ttdebug.sh 보고 사용하십시오.
사용 예제 :
ttdebug.sh | grep -i realtime
watch -t "(ttdebug.sh | grep -i interactive)"
watch -t "(ttdebug.sh | egrep -i 'webco|firefox')"
참고 : 작업 유형은 행동에 따라 감지됩니다. 따라서 어느 시점에서 SystemD가 실시간 작업처럼 행동하고 오랫동안 수면을 취하면 깨어나서 유형을 업데이트 할 때까지 유형은 실시간입니다. 부팅 시간시 어느 시점에서 실시간, CPU_BOUND 또는 모든 유형처럼 행동했기 때문에 잘못된 유형의 많은 수면 작업을 볼 수 있습니다. 이러한 작업은 오랫동안 자고 있으므로, 그들이 깨어날 때 그들의 유형은 사인을 상호 작용하게 될 것입니다. 따라서 수면 시스템 프로세스 유형에 대해 걱정하지 마십시오.
s kernel.sched_tt_max_lifetime
기본값은 22 초입니다. 이것은 그들의 수명 시간과 Vruntime을 정상화하기위한 과제의 최대 수명 시간입니다. cacule의 cacule_max_lifetime 과 유사합니다.
kernel.sched_tt_rt_prio 기본값은 -20입니다. 범위 [-20, 19]. 실시간 작업의 우선 순위가 너무 높기 때문에 실시간 이외의 유형이있는 작업이 굶주 리면 실시간 작업의 우선 순위를 부드럽게 할 수 있습니다. -20은 가장 높고 19는 최우선 과제입니다.
kernel.sched_tt_interactive_prio 기본값은 -10입니다. 범위 [-20, 19].
kernel.sched_tt_cpu_bound_prio 기본값은 -15입니다. 범위 [-20, 19].
kernel.sched_tt_batch_prio 기본값은 19입니다. 범위 [-20, 19].
kernel.sched_tt_balancer_opt
4 값으로 설정할 수 있습니다.
실행 시간에 밸런서 옵션을 변경할 수 있습니다.
kernel.sched_tt_lat_sens_enabled 기본값은 1입니다. 대기 시간에 민감한이 시간 동안 들어오는 작업의 경우 (~ 1ms) 고주파수의 CPU (작업 없음)가 더 빨리 실행됩니다. 대기 시간을 줄이지 만 전력 소비를 증가시킵니다. 전원 저장 밸런서가 선택되면이 옵션은 효과가 없습니다 (즉, 비활성화, = 0).
kernel.sched_tt_dedicated_cpu_bound_enabled 기본값은 1입니다.이 옵션은 CPU 바운드 작업을 현재 CPU에 스팅하여 캐시 로컬을 향상시킵니다. CPU는 하나의 전용 CPU 바운드 작업 만 가질 수 있습니다.
전보 : https://t.me/tt_sched
감사합니다
하마드