27.2. systemd를 사용하여 NUMA 정책 구성
NUMA(Non-Uniform Memory Access)는 메모리 액세스 시간이 프로세서와 관련된 실제 메모리 위치에 따라 달라지는 컴퓨터 메모리 하위 시스템 설계입니다.
CPU에 가까운 메모리는 다른 CPU(정규 메모리)에 대해 로컬 메모리보다 대기 시간(로컬 메모리)이 낮거나 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=
장치 파일 옵션을 적절하게 설정해야 합니다.
추가 리소스
- systemd의 NUMA 정책 구성 옵션
-
systemd.resource-control(5)
,systemd.exec(5)
및set_mempolicy(2)
도움말 페이지.