이와 같은 옵션을 영구적으로 만들려면 일반적으로 파일에 옵션을 추가합니다 /etc/sysctl.conf
. 이 명령을 사용하여 사용 가능한 전체 옵션 목록을 볼 수 있습니다.
$ sysctl -a
예
$ sudo sysctl -a | head -5
kernel.sched_child_runs_first = 0
kernel.sched_min_granularity_ns = 6000000
kernel.sched_latency_ns = 18000000
kernel.sched_wakeup_granularity_ns = 3000000
kernel.sched_shares_ratelimit = 750000
hugepage
출력에서 다음과 같이 찾을 수 있습니다 .
$ sudo sysctl -a | grep hugepage
vm.nr_hugepages = 0
vm.nr_hugepages_mempolicy = 0
vm.hugepages_treat_as_movable = 0
vm.nr_overcommit_hugepages = 0
없어요?
그러나 나는 출력을 통해 보지 못했다 transparent_hugepage
. 좀 더 인터넷 검색을 통해이 주제에 대해 설명하는이 Oracle 페이지를 보았습니다. 페이지 제목 은 Linux에서 Oracle 용 HugePages 구성 (x86-64) 입니다.
특히 해당 페이지 에서 hugepage 기능 을 비활성화하는 방법에 대해 언급합니다 .
발췌
Transparent HugePages를 비활성화하는 가장 좋은 방법은 "/etc/grub.conf"파일의 커널 부트 라인에 "transparent_hugepage = never"를 추가하는 것입니다.
title Oracle Linux Server (2.6.39-400.24.1.el6uek.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.39-400.24.1.el6uek.x86_64 ro root=/dev/mapper/vg_ol6112-lv_root rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=uk
LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 rd_NO_DM rd_LVM_LV=vg_ol6112/lv_swap rd_LVM_LV=vg_ol6112/lv_root rhgb quiet numa=off
transparent_hugepage=never
initrd /initramfs-2.6.39-400.24.1.el6uek.x86_64.img
이를 적용하려면 서버를 재부팅해야합니다.
또는 /etc/rc.local
파일에 명령을 추가 할 수 있습니다 .
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
하나의 커널에서 다음 커널로 업그레이드 할 때 첫 번째 옵션이 설정되지 않을 수 있으므로 두 번째 옵션을 사용한다고 생각합니다.
재부팅 후 다음 명령으로 작동했는지 확인할 수 있습니다.
$ cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]