このようなオプションを永続的にするには、通常、それらをファイルに追加します/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(x86-64)でのOracle用HugePagesの構成」です。
具体的には、そのページで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
あるカーネルから次のカーネルにアップグレードすると、最初のオプションは設定が解除される危険があるため、2番目のオプションを使用すると思います。
再起動後、次のコマンドで機能したことを確認できます。
$ cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]