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