명령어/Linux

[RHEL] memhog NUMA 정책대로 메모리를 잡아 채우는 테스트 도구

jykim23 2026. 8. 5. 23:38
반응형

부제: 지정한 크기만큼 메모리를 할당·터치하고, NUMA 배치 정책이 실제로 먹히는지 검증한다

memhog 10m                    # 10MB 할당 후 채움(기본 정책)
memhog 32m membind 0          # 0번 노드에 강제 배치
memhog 64m interleave 0-1     # 두 노드에 번갈아 분산
memhog [-fFILE] [-rNUM] [-H] size[kmg] [policy [nodeset]]
-f mmap is backed by FILE
-rNUM repeat memset NUM times
-H disable transparent hugepages
Policies: preferred-many local interleave membind preferred default

memhog는 numactl 패키지에 딸려 오는 메모리 부하 도구다. size만큼 메모리를 확보하고 실제로 써서(memset) 물리 페이지를 붙인 뒤, 지정한 NUMA 정책(membind·interleave·preferred 등)에 따라 어느 노드에 앉는지 시험한다. numastat과 짝지어 정책이 의도대로 동작하는지, 노드 간 대역폭·용량 압박이 어떻게 걸리는지 재현할 때 쓴다. 크기는 k/m/g 접미사로 준다. (검증 VM은 단일 NUMA 노드라 배치 분산 효과는 제한적이다.)

이렇게도 쓴다

특정 노드에 강제 배치한다. (membind 정책)

memhog 100m membind 0

 

여러 노드에 번갈아 분산해 대역폭을 넓힌다. (interleave 정책)

memhog 200m interleave all

 

같은 영역을 여러 번 덮어써 쓰기 부하를 키운다. (-r 조합)

memhog -r5 128m

 

투명 대용량 페이지(THP)를 끄고 4K 페이지로만 채운다. (-H 조합)

memhog -H 64m

 

할당 전후 노드별 메모리를 numastat으로 확인한다. (numastat 조합)

numastat -p self; memhog 64m membind 0; numastat -p self
반응형