Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 스파게티
- 스코티쉬 스트레이트
- 발산맛집
- 레스토랑
- 카페
- 소호정본점
- 파머스테이블
- 파버스
- 냥냥
- 고양이
- RED CAT COFFEE X LOUNGE
- 먹기좋은곳
- 치명적 귀여움
- 소호정
- 발산
- 스테이크
- 발산역 근처 카페
- 데이트
- CodeJam 2017 Round 1B
- 냥이
- A. Steed 2: Cruise Control
- 양재맛집
- CDJ
- coffee
- 고양이는 언제나 귀엽다
- 커플
- codejam
- 부모님과
- 냥스토리
- 안동국시
Archives
- Today
- Total
hubring
NUMA 본문
NUMA 아키텍처
numa(Non-Uniform Memory Access)?
- 불균형 메모리 접근이라는 뜻
- 멀티 프로세서 환경에서 적용되는 메모리 접근 방식
- UMA(Unifrom Memory Access) numa와 반대되는 개념
- 해당 방식은 공용 BUS를 이용하여 메모리에 접근
- 해당 방식의 문제는 0번 소켓에 있는 CPU가 메모리에 접근하는 동안 1번 소켓에 있는 CPU는 메모리에 접근 불가
- UMA와 달리 로컬 메모리의 접근이 동시에 이워질 수 있음.
- 하지만 로컬 메모리의 양이 모자라면 다른 CPU에 있는 메모리 접근이 필요하게됨
=> 메모리 접근 시간이 소요하여 성능 저하 발생.
참고
- Local Access : 각각의 cpu마다 별도의 메모리가 있고 해당 메모리를 접근 하는 방식
- NODE : CPU+memory
- Remote Access : 자신의 메모리가 아닌 다른 노드의 메모리에 접근 (NUMA에서 사용)
리눅스에서 NUMA 확인
$ numaactl --show
- numaactl은 numa와 관련된 정책을 확인하거나 설정할 때 사용
- 기본 정책
policy : default
- 관련된 메모리 할당 정책은 총 4가지이다.
default
- 별도 설정이 없다면 모든 프로세스에 적용됨.
- 현재 프로세스가 실행되고 있는 프로세서가 포함됨 노드에서 먼저 메모리를 할당 받아 사용.
bind
- 특정 프로세스를 특정 노드에 바인딩시키는 방식을 취함.
- 이경우 메모리의 지역성이 좋아지기 때문에 메모리 접근 속도가 빨라서 성능이 좋아질 수 있음.
- 단 바인드된 노드의 메모리가 부족하면 성능 하락
preferred
- bind와 비슷하지만 선호하는 노드를 설정
- 가능한 한 설정한 노드로부터 메모리를 할당 (bind 처럼 반드시는 아님)
interleaved
- 다수의 노드에서 거의 동일한 비율로 메모리를 할당받음.
- Round-Robin 정책에 따라 다수의 노드로부터 한 번씩 돌아가면서 메모리를 할당 받음.
$ numaactl --H
- NUMA 노드가 몇개로 구성되어 있는지 확인할 수 있다.
- 각 노드의 cpu, size, free 정보를 보여준다.
- node distances 는 각 노드의 메모리 접근 시간을 의미한다.
$ numastat -cm
- numa 환경에서 현재 시스템에 할당된 메모리의 상태를 보여준다.
- numa 아키텍처에서 메모리 불균형 상태를 확인할 수 있다.
- 전체 메모리에는 free 영역이 많이 있음에도 메모리 할당 정책에 따라 한쪽 노드에서 메모리 할당이 과하게 일어나면 swap을 사용하게 되며 이런 상태를 numastat를 통해서 확인이 가능하다.
$ cat /proc/29800/numa_maps
- numa_maps를 통해 메모리 할당 정책 확인
- /proc/
/numa_maps 를 통해 해당 pid의 정책과 관련된 정보 확인
관련글 링크
'linux' 카테고리의 다른 글
Vim 사용방법 정리 (0) | 2021.03.24 |
---|---|
Tmux 설치 및 사용법 (0) | 2021.03.24 |
Linux에서 쉘스크립트 파일 만들기 (0) | 2021.03.24 |
[리눅스] top (0) | 2021.02.03 |
[리눅스] 시스템 구성 정보 확인하기 (0) | 2021.02.03 |