안녕하세요. 이번 포스팅에서는 NUMA(Non-Uniform Memory Access)라는 메모리 아키텍쳐에 대해서 써보도록 하겠습니다.
0. NUMA 란?
NUMA는 Non-Uniform Memory Access의 약자로써 해석하면 불균형 메모리 접근이라는 뜻입니다.
이는 멀티프로세서 환경에서 적용되는 메모리 접근방식이며 이전의 UMA(Uniform Memory Access)의 초창기 개념과 반대되는 개념과 반대되는 개념입니다.
1. NUMA의 아키텍처(UMA 와 비교)
아래의 그림으로 UMA(Uniform Memory Access)의 작동 방식을 설명합니다.
이 방식에서는 모든 프로세서들이 CPU와 메모리 사이의 공용 BUS를 이용해서 메모리에 접근합니다.
이러한 방식의 문제점은 여러 socket들이 BUS를 동시에 사용할 수 없다는 점입니다.
가령 0번 소켓에 있는 CPU가 메모리에 접근하는 동안 1번 소켓에 있는 CPU는 메모리에 접근할 수 없다는 문제점이 생깁니다.
그렇지만 NUMA(Non-Uniform Memory Access) 아키텍처에서는 이러한 문제를 해결하는 아키텍처를 가집니다.
NUMA는 로컬 메모리로의 접근이 동시에 이뤄질 수 있다는 점이 차이점입니다.
아래의 그림과 같이 각각의 CPU마다 별도의 메모리가 있는데 이와 같은 메모리에접근하는 방식을 로컬 액세스(Local Access)라 합니다.
그리고 이렇게 CPU와 메모리를 합쳐서 각각의 노드를 구성합니다.
이 구조에서는 자신의 메모리가 아닌 다른 노드에 있는 메모리에도 접근할 수 있고, 이러한 과정은 리모트 액세스(Remote Access)라고 부릅니다.
가령, 0번 CPU가 자신의 로컬메모리에 접근하는 동안 1번 CPU도 자신의 메모리에 접근할 수 있어서 성능이 향상됩니다.
하지만 만약 각 노드안의 로컬메모리의 양이 모자란다면 다른 CPU에 붙어있는 메모리에 접근이 필요하게 되고, 이때 메모리 접근에 시간이 소요되어 예상치 못한 성능 저하가 야기될 수 있습니다.
그렇기 때문에 얼마나 많이 메모리 접근이 일어나느냐가 성능 향상의 가장 중요한 지점이라고 할 수 있겠습니다.
본 포스팅의 내용 및 이미지를 무단 전재, 재배포 또는 복사를 금지합니다.
인용 시 출처와 같이 공개해주세요!
도움이 되셨다면 댓글 또는 공감 부탁드립니다!
Icon made by ultimatearm from www.flaticon.com
'IT > Linux_리눅스' 카테고리의 다른 글
[Linux]RHEL/CentOS 에서 분실한 root 패스워드 재설정, 복구하기 (0) | 2021.03.11 |
---|---|
[Linux / Memory] 메모리의 Slab 영역과 slabtop 명령어, slab 할당자(allocator) (0) | 2021.03.11 |
[Linux]WSL(Windows Subsystem for Linux) 다운로드 및 활성화하기 (0) | 2021.03.09 |
[Linux/CentOS]su / su - / sudo 의 비교 및 차이점 (0) | 2021.03.07 |
[Linux/CentOS] 리눅스에서 Terminator(터미네이터) 설치로 다중 터미널,화면 분할, 동시 입력하기 (0) | 2021.03.07 |
댓글