numa란?

    Server / / 2024. 6. 27. 14:14
    728x90

     

    CPU는 가까이 있는 메모리 사용을 선호(지역 메모리)하기에 다른CPU에 연결된 메모리를 사용하도록 하려면 메모리 인터리브 정책을 설정해야함. BIOS 설정에서 메모리 인터리빙을 활성화 해야함. Node  Interleaving 옵션이 enable 되어 있으면 NUMA 미사용한다는 의미. 메모리를 NUMA 안타고 그냥 쌩으로 모든 메모리를 땡겨 쓰라는 의미다.

     

    OS에서는 NUMA 설정과 관련된 메모리 회수 정책을 확인하는 명령어는 아래와 같다. 이 파일은 NUMA 노드가 지역 메모리 부족 시 어떻게 동작할지를 결정한다.

    cat /proc/sys/vm/zone_reclaim_mode
    zone_reclaim_mode의 의미
    1) 0 (기본값): 메모리 회수가 비활성화됩니다. 이는 대부분의 시스템에서 기본값으로 설정되어 있습니다. 일반적으로 지역 간 메모리 접근 비용이 낮기 때문에 이 설정이 사용됩니다.
    2) 1 (순차적 페이지 회수): 노드가 메모리 부족 상황에 처하면, 시스템은 다른 노드로부터 메모리를 회수하기 전에 같은 노드 내의 불필요한 페이지 캐시를 정리하려고 시도합니다. 이는 NUMA (Non-Uniform Memory Access) 시스템에서 메모리 접근 지연을 줄이는 데 유용합니다.
    3) 2 (스왑 페이지 회수): 메모리 부족 시 스왑 페이지를 회수합니다. 이는 메모리 사용량이 높을 때 스왑을 통해 메모리를 확보하는 데 사용됩니다.
    4) 4 (객체 회수): 캐시된 객체를 회수합니다. 이는 파일 시스템 객체 캐시와 같은 객체를 메모리에서 회수하여 메모리 부족 상황을 해결하려고 합니다.

     

    #numa interleaving 활성화 여부 확인 방법

    interleave_hit 값이 높으므로 메모리 인터리빙이 활성화된 것으로 판단할 수 있습니다. 이는 메모리 접근이 NUMA 노드 간에 균등하게 분배되어 메모리 병목 현상을 줄이는 데 도움이 됩니다.

    local_node와 other_node 값의 차이를 통해 각 노드가 자신의 로컬 메모리와 다른 노드의 메모리에 접근한 횟수를 알 수 있습니다. 이는 NUMA 아키텍처에서 성능 최적화를 위해 중요한 지표입니다.

    $ numastat
                               node0           node1
    numa_hit            209513146204    236144201020
    numa_miss              338836867     26405313767
    numa_foreign         26405313767       338836867
    interleave_hit      203405054703    229327677325
    local_node          100210363261    139556090202
    other_node          109641619810    122993424585

    'Server' 카테고리의 다른 글

    Raid카드에 Battery 없을때 Write Mode설정  (0) 2023.09.22
    supermicro서버 BIOS,BMC 업데이트  (0) 2022.04.23
    HPE,Dell : iLO/iDRAC CLI  (0) 2021.08.31
    NUMA Deepdive  (0) 2021.07.08
    NIC 카드 NUMA확인  (0) 2021.07.07
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기