33.12. systemd를 사용하여 NUMA 정책 구성
NUMA(Non-Uniform Memory Access)는 컴퓨터 메모리 하위 시스템 설계로, 프로세서와 관련된 실제 메모리 위치에 따라 메모리 액세스 시간이 달라집니다.
CPU에 가까운 메모리는 다른 CPU (foreign memory)에 대해 로컬되거나 CPU 세트 간에 공유되는 메모리보다 대기 시간(로컬 메모리)이 더 적습니다.
Linux 커널 측면에서 NUMA 정책은 커널이 프로세스에 실제 메모리 페이지를 할당하는 위치(예: NUMA 노드)를 관리합니다.
systemd
는 서비스의 메모리 할당 정책을 제어하기 위해 장치 파일 옵션 NUMAPolicy
및 NUMAMask
를 제공합니다.
절차
NUMAPolicy
단위 파일 옵션을 통해 NUMA 메모리 정책을 설정하려면 다음을 수행합니다.
선택한 서비스에서
NUMAPolicy
단위 파일 옵션 값을 확인합니다.$ systemctl show --property <NUMA policy configuration option> <service name>
루트로서
NUMAPolicy
단위 파일 옵션의 필수 정책 유형을 설정합니다.# systemctl set-property <service name> NUMAPolicy=<value>
서비스를 다시 시작하여 변경 사항을 적용합니다.
# systemctl restart <service name>
[Manager] 구성 옵션을 사용하여 글로벌 NUMAPolicy
설정을 설정하려면 다음을 수행합니다.
-
/etc/systemd/system.conf
파일에서 파일의 [Manager] 섹션에서NUMAPolicy
옵션을 검색합니다. - 정책 유형을 편집하고 파일을 저장합니다.
systemd
구성을 다시 로드합니다.# systemd daemon-reload
- 서버를 재부팅합니다.
엄격한 NUMA 정책을 구성할 때(예: 바인딩
)는 CPUAffinity=
단위 파일 옵션도 적절히 설정해야 합니다.
추가 리소스
- systemctl 명령을 사용하여 애플리케이션 제한 설정
-
systemd.resource-control(5)
,systemd.exec(5)
및set_mempolicy(2)
도움말 페이지.