CONFIG_SCHED_DEBUG=y로 커널을 부팅하면 /sys/kernel/debug/sched에서 스케줄러 특정 디버그 파일에 액세스할 수 있습니다. 이러한 파일 중 일부는 아래에 설명되어 있습니다.
numa_balancing
numa_balancing 디렉토리는 NUMA 밸런싱 기능을 제어하기 위해 파일을 저장하는 데 사용됩니다. 기능의 시스템 오버헤드가 너무 높으면 numa 힌트 오류에 대한 커널 샘플 비율이 scan_period_min_ms, scan_delay_ms, scan_period_max_ms, scan_size_mb 파일에 의해 제어될 수 있습니다.
scan_period_min_ms, scan_delay_ms, scan_period_max_ms, scan_size_mb
자동 NUMA 밸런싱은 작업 주소 공간을 스캔하고 페이지를 매핑 해제하여 페이지가 제대로 배치되었는지, 또는 작업이 실행되는 위치의 메모리 노드로 데이터를 마이그레이션해야 하는지를 탐지합니다. 작업이 "스캔 지연"될 때마다 해당 주소 공간의 다음 "스캔 크기" 페이지를 스캔합니다. 주소 공간의 끝에 도달하면 스캐너가 처음부터 다시 시작됩니다.
조합하여 "스캔 지연"과 "스캔 크기"가 스캔 속도를 결정합니다. "스캔 지연"이 감소하면 스캔 속도가 증가합니다. 스캔 지연 및 이에 따른 모든 작업의 스캔 속도는 적응적이며 과거 동작에 따라 달라집니다. 페이지가 적절하게 배치되면 스캔 지연이 증가하고 그렇지 않으면 스캔 지연이 감소합니다. "스캔 크기"는 적응적이지 않지만 "스캔 크기"가 높을수록 스캔 속도가 증가합니다.
페이지 오류를 트랩하고 잠재적으로 데이터를 마이그레이션해야 하므로 스캔 속도가 높을수록 시스템 오버헤드가 증가합니다. 그러나 원격 메모리 액세스로 인해 작업량 패턴이 변경되고 성능 영향이 최소화되면 스캔 속도가 높을수록 작업 메모리가 로컬 노드로 더 빨리 마이그레이션됩니다. 이러한 파일은 스캔 지연에 대한 임계값과 스캔된 페이지 수를 제어합니다.
scan_period_min_ms는 태스크 가상 메모리를 검색하는 최소 시간(밀리초)입니다. 각 태스크의 최대 검색 속도를 효과적으로 제어합니다.
scan_delay_ms는 작업이 처음에 포크될 때 작업에 사용되는 시작 "스캔 지연"입니다.
scan_period_max_ms는 태스크 가상 메모리를 검색하는 최대 시간(밀리초)입니다. 각 태스크의 최소 검색 속도를 효과적으로 제어합니다.
scan_size_mb는 주어진 스캔에 대해 스캔되는 페이지의 메가바이트 수입니다.
'scheduler' 카테고리의 다른 글
Scheduler Statistics (2) | 2023.11.28 |
---|---|
Real-Time group scheduling (1) | 2023.11.28 |
Scheduler Nice Design (0) | 2023.11.28 |
Utilization Clamping (1) | 2023.11.28 |
Schedutil (0) | 2023.11.26 |
댓글