소개
이 랩에서는 Linux 에서 Non-Uniform Memory Access (NUMA) 설정이 적용되었는지 확인하는 방법을 배우게 됩니다. NUMA 를 이해하는 것은 멀티 프로세서 시스템에서 성능을 최적화하는 데 매우 중요합니다.
일련의 실습 단계를 통해 numactl 및 lscpu와 같은 필수 Linux 명령을 사용하고 /proc/numa 파일 시스템을 탐색하여 시스템의 NUMA 구성을 확인하고 검사합니다. 이 랩은 NUMA 노드, 관련 CPU 및 메모리를 식별하는 실질적인 기술을 제공하여 시스템의 NUMA 설정을 효과적으로 평가할 수 있도록 합니다.
numactl --hardware 로 NUMA 상태 확인
이 단계에서는 시스템에서 Non-Uniform Memory Access (NUMA) 아키텍처를 탐색하기 시작합니다. NUMA 는 다중 처리에서 사용되는 컴퓨터 메모리 설계로, 메모리 접근 시간은 프로세서에 대한 메모리 위치에 따라 달라집니다. NUMA 를 이해하는 것은 특정 애플리케이션에서 성능을 최적화하는 데 중요할 수 있습니다.
numactl 명령을 사용하여 NUMA 상태를 확인합니다. numactl 명령은 프로세스에 대한 NUMA 정책을 제어하거나 특정 NUMA 정책으로 프로그램을 실행하는 데 사용됩니다.
먼저, 시스템에서 numactl 명령을 사용할 수 있는지 확인해 보겠습니다. 터미널에 다음 명령을 입력하고 Enter 키를 누르십시오.
which numactl
numactl이 설치되어 있으면 실행 파일의 경로가 표시됩니다. 예를 들어 다음과 같습니다.
/usr/bin/numactl
설치되지 않은 경우 빈 출력이나 오류 메시지가 표시될 수 있습니다. 설치되지 않은 경우 apt를 사용하여 설치할 수 있습니다. 암호 없이 sudo 권한이 있으므로 다음을 실행할 수 있습니다.
sudo apt update
sudo apt install numactl -y
이제 numactl을 사용할 수 있으므로 --hardware 옵션을 사용하여 시스템의 NUMA 노드에 대한 정보를 표시해 보겠습니다. 다음 명령을 입력하고 Enter 키를 누르십시오.
numactl --hardware
다음과 유사한 출력이 표시되어 사용 가능한 NUMA 노드와 관련 CPU 및 메모리가 나열됩니다.
available: 1 nodes (0)
node 0 cpus: 0 1
node 0 size: 1999 MB
node 0 free: 1800 MB
이 출력은 시스템에 1 개의 NUMA 노드 (노드 0) 가 있음을 나타냅니다. 또한 이 노드에 속한 CPU 와 사용 가능한 총 메모리 및 사용 가능한 메모리를 보여줍니다. 정확한 출력은 가상 머신 구성에 따라 다를 수 있습니다.
이 출력을 이해하는 것은 NUMA 시스템으로 작업하는 첫 번째 단계입니다. 다음 단계에서는 NUMA 구성을 검사하는 더 많은 방법을 탐색합니다.
다음 단계로 진행하려면 계속을 클릭하십시오.
/proc/numa 에서 NUMA 노드 확인
이 단계에서는 /proc 파일 시스템을 탐색하여 NUMA 노드에 대한 정보를 찾습니다. /proc 파일 시스템은 프로세스 및 기타 시스템 정보에 대한 정보를 제공하는 가상 파일 시스템입니다. Linux 시스템의 구성 및 상태에 대한 세부 정보를 찾는 데 유용합니다.
특히 /proc/numa 디렉토리를 살펴보겠습니다. 이 디렉토리에는 NUMA 구성에 대한 세부 정보를 제공하는 파일이 포함되어 있습니다.
먼저, ls 명령을 사용하여 /proc/numa 디렉토리의 내용을 나열해 보겠습니다. 터미널에 다음 명령을 입력하고 Enter 키를 누르십시오.
ls /proc/numa
다음과 유사한 출력이 표시됩니다.
distance nodes
이는 /proc에서 NUMA 와 관련된 두 개의 주요 파일 또는 디렉토리, 즉 distance와 nodes가 있음을 나타냅니다.
이제 /proc/numa/nodes 파일의 내용을 살펴보겠습니다. 이 파일은 사용 가능한 NUMA 노드를 나열해야 합니다. cat 명령을 사용하여 이 파일의 내용을 표시할 수 있습니다. 다음 명령을 입력하고 Enter 키를 누르십시오.
cat /proc/numa/nodes
다음과 유사한 출력이 표시됩니다.
0
이 출력은 시스템에 최소한 하나의 NUMA 노드, 즉 노드 0 이 있음을 확인합니다. 시스템에 더 많은 NUMA 노드가 있는 경우 여기에 노드 번호 목록이 표시됩니다 (예: 0 1).
다음으로 /proc/numa/distance 파일을 살펴보겠습니다. 이 파일은 NUMA 노드 간의 거리를 보여주며, 이는 다른 노드의 메모리에 액세스하는 비용을 나타냅니다. 단일 노드 시스템의 경우 자체에 대한 거리는 일반적으로 10 입니다. 다음 명령을 입력하고 Enter 키를 누르십시오.
cat /proc/numa/distance
다음과 유사한 출력이 표시됩니다.
0: 10
이 출력은 거리 행렬을 보여줍니다. 이 경우 0: 10은 노드 0 에서 노드 0 까지의 거리가 10 임을 의미합니다. 여러 NUMA 노드가 있는 시스템에서는 모든 노드 쌍 간의 거리를 보여주는 행렬이 표시됩니다.
/proc 파일 시스템을 탐색하는 것은 Linux 에서 시스템 정보를 수집하는 일반적인 방법입니다. 이제 시스템에서 감지된 NUMA 노드를 확인하기 위해 이를 사용하는 방법을 확인했습니다.
다음 단계로 이동하려면 계속을 클릭하십시오.
lscpu 로 NUMA 상세 정보 확인
이 마지막 단계에서는 lscpu 명령을 사용하여 NUMA 구성을 포함한 CPU 아키텍처에 대한 자세한 정보를 얻습니다. lscpu 명령은 시스템의 CPU 에 대한 정보를 표시하며 시스템 하드웨어를 이해하는 데 매우 유용할 수 있습니다.
터미널에 다음 명령을 입력하고 Enter 키를 누르십시오.
lscpu
CPU 에 대한 포괄적인 출력이 표시됩니다. "NUMA"를 언급하는 줄을 찾으십시오. 출력은 시스템에 따라 다르지만 다음과 유사한 내용이 표시됩니다.
Architecture: x86_64
...
NUMA node(s): 1
NUMA node0 CPU(s): 0,1
출력의 관련 부분을 분석해 보겠습니다.
NUMA node(s): 1: 이 줄은 시스템에서 감지된 총 NUMA 노드 수를 알려줍니다. 이 경우 1 개이며, 이는numactl을 사용하고/proc/numa를 확인했을 때 확인한 내용과 일치합니다.NUMA node0 CPU(s): 0,1: 이 줄은 NUMA 노드 0 에 속하는 CPU 코어를 보여줍니다. 여기서는 CPU 0 과 1 이 노드 0 의 일부임을 나타냅니다.
lscpu 명령은 코어 수, 스레드, 캐시 크기 및 지원되는 기능과 같은 CPU 에 대한 많은 다른 유용한 정보를 제공합니다. 출력을 스크롤하여 찾을 수 있는 다른 세부 정보를 확인하십시오.
이제 세 가지 다른 방법 (numactl --hardware, /proc/numa, lscpu) 을 사용하여 시스템의 NUMA 구성을 성공적으로 검사했습니다. 이러한 도구를 이해하는 것은 다중 프로세서 시스템에서 성능 문제를 진단하고 애플리케이션을 최적화하는 데 필수적입니다.
이 랩을 완료하고 진행 상황을 검토하려면 계속을 클릭하십시오.
요약
이 랩에서는 Linux 에서 NUMA 설정이 적용되었는지 확인하는 방법을 배웠습니다. 먼저 numactl --hardware 명령을 사용하여 관련 CPU 및 메모리를 포함하여 사용 가능한 NUMA 노드에 대한 정보를 표시했습니다. 이를 통해 시스템의 NUMA 아키텍처에 대한 기본적인 이해를 얻었습니다.
그런 다음 NUMA 구성을 확인하기 위한 대체 방법을 탐색했습니다. 여기에는 NUMA 노드 및 해당 메모리 통계에 대한 자세한 정보를 제공하는 /proc/numa 파일 시스템 검사가 포함되었습니다. 마지막으로, lscpu 명령을 사용하여 NUMA 관련 세부 정보를 포함한 CPU 아키텍처에 대한 포괄적인 개요를 얻어 시스템의 NUMA 설정을 추가로 확인했습니다.



