본문 바로가기

Linux/Linux공통

[Linux] THP 비활성화 방법 및 설명

- 이슈 : THP가 일부 DB서버에서 문제가 될수 있습니다. 

ex)

티베로 DB에서 일반적인 경우에는 hugepage 사용시, THP 기능 disable을 권고하고 있습니다.

_USE_HUGE_PAGE=Y 파라미터 사용시

 

1. THP(Transparent Huge Pages)란?

Linux는 메모리를 Page라는 블록으로 분할해 관리를 합니다. 기본 페이지의 크기는 4KB인데 만약 1기가의 메모리를 Page로 분할하게되면 256,000개의 Page로 분할됩니다. 메모리가 커질수록 Page의 개수가 늘어나면서 페이지를 관리하는 TLB(transparent lookaside buffer)의 크기가 같이 커지게 되는데 이걸 방지하기위해 Page자체의 크기를 키워 Page개수를 줄여 TLB의 크기를 작게 만드는 기술을 THP(Transparent Huge Pages)  라고 합니다.

 

2. THP비활성화 이유

THP는 Linux에서 기본적으로 활성화 되어 2MB의 단위로 설정이 되어있습니다. 서버의 메모리 용량이 100기가를 넘는 환경에서  THP는 메모리 관리면에서 유리한게 맞지만 THP가 오히려 성능을 저하시키는 경우가 자주 발견되고 있어 THP 비활성화를 권고하고 있습니다.

 

3. THP 비활성화 방법 및 확인

  3.1. THP 설정 확인

    - THP 상태 확인

 

    현재 대괄호의 위치로 활성화인지 비활성화인지 확인 가능합니다.

    always 활성화  상태고 never 비활성화  상태를 표시합니다.

 

 3.2 THP 비활성화 방법

    - 데몬 작동 확인

 

     방법은 기본적으로 tuned 데몬을 사용합니다

 

    - tuned에 새로운 프로필 생성

 

    /etc/tuned 새로운 프로필을 생성해줍니다.

 

    - tuned.conf로 파일 생성 및 권한부여

 

    생성한 프로필에 tuned.conf 만들어 다음과 같이 작성하고 실행권한을 줍니다.

    실행권한이 없으면 정상적으로 데몬에서 사용이 불가능합니다.

 

    - 생성한 프로필 사용

 

    생성한 프로필을 선택해 줍니다.

    선택후 tuned-adm active를 입력해 현재 적용된 profile을 확인 할수 있습니다.

 

    - grub수정 

 

    grub GRUB_CMDLINE_LINUX transparent_hugepage=never 추가해 줍니다.

 

    - grub2-mkconfig 적용 

 

    grub2-mkconfig -o /boot/grub2/grub.cfg명령어로 grub.cfg파일을 새로 구축합니다.

    다음과 같이 적용을 안하면 reboot을 해도 적용되지 않습니다. 

    만약 부팅 모드를 UEFI 설정해 설치한 경우 /boot/efi/EFI/redhat/grub.cfg 경로를 설정해줍니다.

 

   
    
구축이 완료된후 리붓을  변경내용을 적용해 줍니다.

 

    - 적용 확인 


    정상적으로 적용이 되어 meminfo에서 메모리를 사용하지 않게 됩니다.

 

참고문서

https://access.redhat.com/solutions/46111

 

How to use, monitor, and disable transparent hugepages in Red Hat Enterprise Linux 6 and 7? - Red Hat Customer Portal

How do transparent hugepages work in RHEL 6? How are transparent hugepages activated by a process? Do we still need to preallocate some amount of memory for use as (transparent) hugepages? How can I see the number of transparent hugepages that are actually

access.redhat.com

 

출처

http://www.chlux.co.kr/bbs/board.php?bo_table=board02&wr_id=102&sca=OS

 

클럭스

클럭스, S/W 프로젝트

www.chlux.co.kr