Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

9장. NUMA

이전에는 AMD64 및 Intel 64 시스템의 모든 메모리에 동일하게 모든 CPU에 액세스할 수 있습니다. UMA(Uniform Memory Access)라고 하는 액세스 시간은 작업을 수행하는 CPU와 관계없이 동일합니다.
이 동작은 더 이상 최근 AMD64 및 Intel 64 프로세서의 경우에는 해당되지 않습니다. NUMA(Non-Uniform Memory Access)에서 시스템 메모리는 소켓에 해당하거나 시스템 메모리의 로컬 하위 집합에 대해 동일한 액세스 대기 시간이 있는 특정 CPU 집합에 해당하는 NUMA 노드로 나뉩니다.
이 장에서는 가상화 환경의 메모리 할당 및 NUMA 튜닝 구성에 대해 설명합니다.

9.1. NUMA 메모리 할당 정책

다음 정책은 시스템의 노드에서 메모리 할당 방법을 정의합니다.
Strict
엄격한 정책이란 대상 노드에 메모리를 할당할 수 없는 경우 할당이 실패했음을 의미합니다.
메모리 모드 속성을 정의하지 않고 NUMA 노드 세트 목록을 지정하는 기본값은 strict 모드입니다.
Interleave
메모리 페이지는 노드 세트에서 지정한 노드 간에 할당되지만 라운드 로빈 방식으로 할당됩니다.
Preferred
메모리는 하나의 기본 메모리 노드에서 할당됩니다. 충분한 메모리를 사용할 수 없는 경우 다른 노드에서 메모리를 할당할 수 있습니다.
의도한 정책을 활성화하려면 도메인 XML 파일의 < memory mode&gt; 요소의 값으로 설정합니다.
<numatune>
        <memory mode='preferred' nodeset='0'>
</numatune>
중요
strict 모드에서 메모리를 과다 할당하고 게스트에 충분한 스왑 공간이 없는 경우 커널은 일부 게스트 프로세스를 종료하여 추가 메모리를 검색합니다. 이 상황을 방지하기 위해 preferred 할당 사용 및 단일 노드 세트(예: nodeset='0')를 사용하는 것이 좋습니다.