NUMA 메모리 접근 방식과 성능 영향

1. 개념 한줄 요약

NUMA는 여러 CPU가 각각 자신의 메모리를 가지며 메모리 접근 속도가 위치에 따라 달라지는 서버 중심의 메모리 구조다.

2. 쉽게 풀어쓴 설명

일반적인 컴퓨터에서는 CPU와 메모리가 하나의 통합 구조로 연결되어 있어 어느 CPU가 메모리에 접근하더라도 동일한 속도로 데이터를 읽을 수 있다. 하지만 서버나 고성능 컴퓨팅 환경에서는 CPU 수가 많아지면서 하나의 메모리를 모든 CPU가 공유하는 방식이 성능 병목을 만들 수 있다.

이 문제를 해결하기 위해 등장한 구조가 NUMA(Non-Uniform Memory Access)다. NUMA 구조에서는 여러 CPU가 각각 자신과 가까운 메모리 영역을 가지며, 해당 메모리에 접근할 때 더 빠른 속도를 얻을 수 있다.

반대로 다른 CPU에 연결된 메모리에 접근할 경우에는 데이터가 CPU 간 연결 경로를 거쳐야 하기 때문에 상대적으로 접근 속도가 느려진다. 이러한 특징 때문에 메모리 접근 시간이 균일하지 않다는 의미로 Non-Uniform이라는 이름이 붙었다.

쉽게 말해 CPU마다 가까운 메모리가 존재하고, 어느 메모리를 사용하느냐에 따라 성능이 달라지는 구조라고 이해할 수 있다.

3. 구조·원리 설명

✔ NUMA 노드 구조

NUMA 시스템에서는 CPU와 메모리가 하나의 묶음 단위로 구성되는데 이를 NUMA 노드라고 한다. 각 노드는 다음과 같은 요소로 구성된다.

  • CPU 또는 CPU 코어 그룹
  • 해당 CPU에 연결된 로컬 메모리
  • 다른 노드와 연결되는 인터커넥트

CPU는 자신이 속한 노드의 메모리에 접근할 때 가장 빠른 성능을 얻는다.

✔ 로컬 메모리와 원격 메모리

NUMA 구조에서는 메모리 접근이 두 가지 방식으로 이루어진다.

  • 로컬 메모리 접근: 같은 노드의 메모리 사용
  • 원격 메모리 접근: 다른 노드의 메모리 사용

로컬 메모리 접근은 CPU와 메모리가 직접 연결되어 있어 지연 시간이 짧다. 반면 원격 메모리 접근은 CPU 간 연결을 거쳐야 하므로 지연 시간이 더 길어질 수 있다.

✔ CPU 간 연결 인터커넥트

NUMA 시스템에서는 각 CPU 노드가 서로 연결되어 데이터를 교환한다. 이 연결 구조는 고속 인터커넥트 기술을 사용해 설계된다.

대표적인 연결 기술에는 다음과 같은 것들이 있다.

  • HyperTransport
  • Intel QPI
  • Infinity Fabric

이러한 인터커넥트는 CPU 간 데이터 전달 속도를 높여 NUMA 환경의 성능을 유지하는 데 중요한 역할을 한다.

✔ 운영체제 메모리 스케줄링

NUMA 환경에서는 운영체제가 프로그램을 실행할 때 CPU와 메모리 위치를 고려해 작업을 배치한다. 이를 NUMA 최적화 또는 메모리 로컬리티 관리라고 한다.

프로그램이 실행되는 CPU와 같은 노드의 메모리를 사용하도록 하면 성능을 크게 향상시킬 수 있다.

4. 예시

① 서버 시스템 예시

대형 데이터베이스 서버에서는 여러 CPU와 대용량 메모리가 사용되며 NUMA 구조가 적용되는 경우가 많다.

② 고성능 컴퓨팅 예시

과학 계산이나 인공지능 학습 같은 대규모 연산 환경에서도 NUMA 구조가 활용된다.

③ 가상화 환경 예시

가상 머신을 실행할 때 NUMA 구조를 고려해 CPU와 메모리를 배치하면 성능을 개선할 수 있다.

5. 주의점

❗ 원격 메모리 접근 지연

다른 노드의 메모리를 사용하면 접근 지연 시간이 증가할 수 있다.

❗ 프로그램 최적화 필요

NUMA 환경에서는 메모리 사용 패턴을 고려한 프로그램 설계가 중요하다.

❗ 운영체제 지원 중요

운영체제가 NUMA 구조를 제대로 관리하지 못하면 성능이 저하될 수 있다.

❗ 대형 시스템 중심 기술

일반 개인용 컴퓨터보다는 서버나 고성능 시스템에서 주로 사용된다.

6. 요약 정리

NUMA는 여러 CPU가 각각 로컬 메모리를 가지고 서로 연결되는 메모리 구조로, 메모리 접근 속도가 위치에 따라 달라지는 특징을 가진다. 로컬 메모리는 빠르게 접근할 수 있지만 원격 메모리는 지연 시간이 증가할 수 있다. 운영체제와 프로그램이 CPU와 메모리 위치를 고려해 작업을 배치하면 NUMA 환경에서 높은 성능을 얻을 수 있으며, 이러한 구조는 서버와 고성능 컴퓨팅 시스템에서 중요한 역할을 한다.

error: Content is protected !!