[](https://www.hongsnet.net) # THP(Transparent HugePage) Overview RHEL 6.2(2.6.32-220) 이후 부터 개발자 또는 시스템 관리자의 개입없이, Hugepage 메모리 페이지의 생성 및 관리를 커널 기능이 도입 되었다. 이는 Application에서 사용하는 익명 메모리 영역을 Mapping하여, 동적 메모리를 할당하는 데 주로 사용된다. !`중요` : Application에서 hugepage를 사용해야 할 경우 `vm.nr_hugepages` 파라미터를 sysctl tool을 사용하여, 미리 할당하여 사용하는 것이 권장 된다. 또한 Hugepage를 사용하지 않는 시스템의 경우 불필요한 메모리를 동적으로 할당할 필요가 없으므로, 비활성화하는 것이 권장 된다. !참고 : 영구적으로 이를 적용하려면, GRUB 부트로더에 값을 설정한 후 리부팅이 필요 하다. # THP 해제 수행 * [ STEP 1 ] /proc/meminfo review * [ STEP 2 ] GRUB 부트로더 설정 추가 * [ STEP 3 ] 리부팅 후 /proc/meminfo review 1. 먼저 다음과 같이 /proc/meminfo 정보를 review 한다. ```bash # cat /proc/meminfo |grep "AnonHugePages" AnonHugePages: 811008 kB ``` 위와 같이 대략 **790** MebiByte 가 넘는 용량이 설정되어 있는 것을 확인할 수 있다. 2. 이를 해제하기 위해 GRUB 부트로더에 다음과 같이 설정을 진행 한다. ```bash # cat /etc/default/grub GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="crashkernel=auto spectre_v2=retpoline rhgb quiet transparent_hugepage=never" GRUB_DISABLE_RECOVERY="true" ``` 단, 최종 적용을 위해서는 다음과 같이 설정 파일을 업데이트해줘야 한다. ```bash # grub2-mkconfig -o /boot/grub2/grub.cfg Generating grub configuration file ... Found linux image: /boot/vmlinuz-3.10.0-1160.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-1160.el7.x86_64.img Found linux image: /boot/vmlinuz-0-rescue-bf7b5f2da6be4f7fb70b35e636a5ccf1 Found initrd image: /boot/initramfs-0-rescue-bf7b5f2da6be4f7fb70b35e636a5ccf1.img done ``` 3. 이제 리부팅을 진행하고, 다시 /proc/meminfo review를 진행 한다. ```bash # sync; sync; init 6 ``` 리부팅 후 ```bash # cat /proc/meminfo |grep "AnonHugePages" AnonHugePages: 0 kB ```