9.2. 자동 NUMA 분산
자동 NUMA 분산은 NUMA 하드웨어 시스템에서 실행되는 애플리케이션의 성능을 향상시킵니다. Red Hat Enterprise Linux 7 시스템에서 기본적으로 활성화되어 있습니다.
일반적으로 애플리케이션은 프로세스 스레드가 스레드와 동일한 NUMA 노드의 메모리에 액세스하는 경우 가장 적합합니다. 자동 NUMA 분산은 액세스 중인 메모리에 더 가깝게 작업( threads 또는 프로세스일 수 있음)을 이동합니다. 또한 애플리케이션 데이터를 참조하는 작업에 더 가까운 메모리로 이동합니다. 이 모든 작업은 자동 NUMA 분산이 활성화될 때 커널에 의해 자동으로 수행됩니다.
자동 NUMA 분산은 시스템에서 자동 NUMA 분산이 활성화된 경우에만 활성 및 할당된 알고리즘 및 데이터 구조를 사용합니다.
- 프로세스 메모리의 주기적인 NUMA 매핑
- NUMA 힌트 오류
- migrate-on-Fault (MoF) - 메모리를 실행하는 위치로 이동합니다.
- task_numa_placement - 실행중인 프로그램을 메모리에 더 가깝게 이동합니다.
9.2.1. 자동 NUMA 분산 구성
자동 NUMA 분산은 Red Hat Enterprise Linux 7에서 기본적으로 활성화되어 있으며 NUMA 속성을 사용하여 하드웨어에서 부팅될 때 자동으로 활성화됩니다.
자동 NUMA 분산은 다음 조건이 모두 충족되면 활성화됩니다.
- # numactl --hardware 는 여러 노드를 표시
- # cat /proc/sys/kernel/numa_balancing s
1
애플리케이션의 수동 NUMA 튜닝은 자동 NUMA 분산을 재정의하여 메모리의 일정 매핑, NUMA 오류, 마이그레이션 및 해당 애플리케이션의 자동 NUMA 배치를 비활성화합니다.
시스템 전체 수동 NUMA 튜닝이 권장되는 경우도 있습니다.
자동 NUMA 분산을 비활성화하려면 다음 명령을 사용하십시오.
# echo 0 > /proc/sys/kernel/numa_balancing
자동 NUMA 분산을 활성화하려면 다음 명령을 사용합니다.
# echo 1 > /proc/sys/kernel/numa_balancing