관리 메뉴

ARTIFEX ;)

# THP 설정 확인 및 해제 방법 본문

# Other IT Something/DB_MongoDB

# THP 설정 확인 및 해제 방법

Artifex_Ethan_ 2016. 10. 20. 12:38
반응형
# THP 옵션이 활성화 되어있는지 확인하는 방법
 

- 설정 여부 확인

$> cat /sys/kernel/mm/transparent_hugepage/enabled 

 
위 명령 실행 후

[always] madvise never  -> 출력된 결과에 [always] 에 대괄호가 되어있으면 THP가 활성화 된 상태입니다.

always madvise [never]  -> 출력된 결과에 [never] 에 대괄호가 되어있으면 THP가 비활성화 된 상태입니다. 

 


- 메모리 확인

$> cat /proc/meminfo 

 

위의 명령을 실행하면 아래와 같은 결과가 나옵니다.

 MemTotal:        1003184 kB

MemFree:          604844 kB
MemAvailable:     750616 kB
Buffers:             884 kB
Cached:           143904 kB
SwapCached:            0 kB
Active:           160624 kB
Inactive:         112368 kB
Active(anon):     128912 kB
Inactive(anon):     6356 kB
Active(file):      31712 kB
Inactive(file):   106012 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB
Dirty:                92 kB
Writeback:             0 kB
AnonPages:        128300 kB
Mapped:            37492 kB
Shmem:              7064 kB
Slab:              60876 kB
SReclaimable:      23024 kB
SUnreclaim:        37852 kB
KernelStack:        8480 kB
PageTables:         6220 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     2598740 kB
Committed_AS:     494544 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      185924 kB
VmallocChunk:   34359535100 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       61312 kB
DirectMap2M:      987136 kB
DirectMap1G:           0 kB
 

여기서 아래의 모든 값이 0 이어야 THP가 완전히 비활성화 된 상태입니다.

AnonHugePages:         0 kB

HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0


애초에 Linux 부팅 시점 부터 관련된 설정들을 모두 막아버리지 않으면 THP 기능 활성화 상태는 [never]로 나올지라도
AnonHugePages 는 여전히 할당되어 있는 문제가 생겨버립니다.
따라서 AnonHugePages가 완전히 0이 되도록 설정되어야 하지만
구글 검색 결과에 나오는 다양한 방법들이 불완전한 방법으로 THP를 disable 시키는 경우가 많아
실제 유효한 방법을 공유합니다.




# THP 옵션이 활성화 되어있는지 확인하는 방법 (in RHEL7)

RHEL 7 버전에서의 THP 비활성화 방법을 기술하겠습니다.


THP는 커널 설정과 tuned 설정에 의해 활성화되므로 이 2가지를 모두 비활성화 시킬 필요가 있습니다.



- 새로운 tuned profile을 만든 뒤 active 상태로 설정 


아래와 같이 명령어를 입력하여 현재 active 상태인 tuned profile을 확인합니다.

$> tuned-adm active 


위 명령어 입력 후 만약 현재 OS가 가상머신을 통해 운영중이라면 virtual-guest,

실제 서버의 콘솔에서는 throughput-performance로 나오게 됩니다.


 

Current active profile: throughput-performance   # in Server default configuration


Current active profile: virtual-guest   # in Virtual OS


 



새로 생성하길 원하는 프로필 명으로 /etc/tuned 아래 경로에 디렉토리를 생성합니다. (여기서는 프로필명이 cubrid라고 가정)


 

$> mkdir /etc/tuned/cubrid 



새로 생성한 디렉토리 안에 tuned.conf 파일을 다음과 같이 생성 후 저장합니다.


 

$> vi /etc/tuned/cubrid/tuned.conf 



 

[main]
include= throughput-performance
[vm]
transparent_hugepages=never 



위에 생성한 파일에 실행 권한을 부여합니다.


 

$> chmod +x /etc/tuned/cubrid/tuned.conf 


 


새로 만든 프로필을 활성화합니다.


 

$> tuned-adm profile cubrid 


 



- 커널 파라미터 추가


/etc/sysconfig/grub 파일에 다음과 같이 transparent_hugepage=never 커널 파라미터를 추가합니다.


 

$> vi /etc/sysconfig/grub


 

GRUB_TIMEOUT=5

GRUB_DEFAULT=saved

GRUB_DISABLE_SUBMENU=true

GRUB_TERMINAL_OUTPUT="console"

GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap crashkernel=auto rhgb quiet transparent_hugepage=never"

GRUB_DISABLE_RECOVERY="true" 


# GRUB_CMDLINE_LINUX 의 맨 뒤에 transparent_hugepage=never 추가


 


grub2-mkconfig를 통해 grub.cfg 파일을 재생성합니다.


 

$> grub2-mkconfig -o /boot/grub2/grub.cfg


 


재부팅 후 아래 명령어를 통해 설정 내용을 확인합니다.
출력 결과에 위에서 추가한 사항이 포함되어 있으면 성공입니다.

$> reboot

$> cat /proc/cmdline 


BOOT_IMAGE=/vmlinuz-3.10.0-229.20.1.el7.x86_64 root=/dev/mapper/centos-root ro rd.lvm.lv=centos/root rd.lvm.lv=centos/swap crashkernel=auto rhgb quiettransparent_hugepage=never 



[출처http://paindom.blog.me]

반응형

'# Other IT Something > DB_MongoDB' 카테고리의 다른 글

# THP 해제 방법  (0) 2016.10.20
# THP  (0) 2016.10.20