HugePage
내용
- 리눅스는 메모리에 대한 관리를 Pages 단위로 관리/사용되고 있고 기본 페이지는 4096바이트 (4KB) 로 고정되어 있음
- 1GB 메모리에는 256000개의 Page로 구성된다는 의미이고 이는 메모리 크기가 늘어날수록 관리테이블 (TLB) 도 커지게 됨
- 메모리에 접근하는 과정에서 Page가 많다면 오버헤드가 발생할 가능성이 크므로 Page 크기를 키우는 방법을 도입, 이를 HugePage라고 함
특징
- Normal Page와는 다르게 Swap 되지 않기 때문에 Page In/Out의 오버헤드가 발생하지 않음
- 적은 수의 Meta 정보로 더 많은 메모리를 대체하기 때문에 Page Hit율이 높아짐 (TLB 히트율이 높아짐)
- Page Table에서 관리하는 물리적 메모리의 Entry 개수가 줄어들고 더 적은 메모리 공간을 유지함
- 관리하는 Page 수 자체가 절대적으로 줄어들기 때문에 메모리 관리를 위한 오버헤드가 줄고 자원 사용율도 절약됨
- 커널 스왑 데몬 (kswapd) 이 사용되지 않음
- 어플리케이션이나 데몬에서 HugePage를 지원해야만 사용 가능
확인
cat /proc/meminfo | grep -i huge