설문조사
PostgreSQL/PPAS 관련 듣고 싶은 교육은


총 게시물 73건, 최근 0 건
   

hugepage 세팅시 주의사항

글쓴이 : PostgresDBA 날짜 : 2016-03-25 (금) 13:15 조회 : 13261
오랜만에 글을 올리네요.

리눅스에서 디폴트 메모리 페이지 사이즈가 4K 인데, 2M 메가 단위로 사용하는걸 HUGE PAGE 라고 합니다.
오라클이나 PPAS/POSTGRESQL 이나 HUGE PAGE 설정을 해서 성능 개선이 가능합니다.

단 Transparent Huge Pages (THP) 방식으로 huge page 사용시는, 오라클이나 PostgreSQL 모두 성능이저하되므로 관련 설정을 끄시기 바랍니다.

다시 말하자면,
redhat/centos 서버에서  ppas/postgresql 의 shared buffers 메모리를 huge page 세팅을 해서 사용하고 싶다면, Transparent Huge Pages (THP) 설정은 off 하신후 사용하시기 바랍니다.

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

아래에 넣는게 가장 확실
vi /etc/grub.conf 
...
title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vg_gsdmdb01-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_gsdmdb01/lv_root rd_NO_MD rd_LVM_LV=vg_gsdmdb01/lv_swap SYSFonT=latarcyrheb-sun16 crashkernel=128M  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet transparent_hugepage=never
        initrd /initramfs-2.6.32-431.el6.x86_64.img
...

(부팅할때마다 적용되도록 rc.local 에 적당히 넣으시고)
THP 에 대해서는 아래 참조
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Performance_Tuning_Guide/s-memory-transhuge.html


-- THP 활성화때 --
[enterprisedb@test:/data/test]$ grep Huge /proc/meminfo
AnonHugePages:     32768 kB
HugePages_Total:   32768
HugePages_Free:    32665
HugePages_Rsvd:     2583
HugePages_Surp:        0
Hugepagesize:       2048 kB
[enterprisedb@test:/data/test]$ 

-- THP OFF 시 --
[enterprisedb@test:/data/test]$ 
AnonHugePages:         0 kB
HugePages_Total:   32768
HugePages_Free:    32037
HugePages_Rsvd:    27173
HugePages_Surp:        0
Hugepagesize:       2048 kB
[enterprisedb@test:/data/test]$ 



모모와도도 2019-02-12 (화) 13:05
mongo, redis 에서도 THP 는 비활성화 하는데 postgresql 도 동일하네요.
댓글주소
PostgresDBA 2022-01-12 (수) 08:19
댓글주소
PostgresDBA 2023-07-18 (화) 11:03
출저: https://blog.naver.com/PostView.nhn?blogId=paindom&logNo=220554301312
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
댓글주소
   

postgresdba.com