CentOS6 disable transparent hugepages


transparent hugepagesを無効にする、以上! というテヘペロです。


【現状確認】
下のコマンドで、alwaysを[]で囲まれていたら有効中。
$ cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
$ cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never
$


【無効にする】
/etc/rc.local に以下を追加する。

# vi /etc/rc.local
# disable transparent hugepages
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
# reboot


【作業後確認】
$ cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
$ cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]
$
どちらもneverですので、大丈夫なようです。


【/etc/grub.confに「transparent_hugepage=never」を追記するのは?】

/etc/grub.confに「transparent_hugepage=never」を追記する。
        kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=a250a62b-ae31-4b87-aed5-0605eedac693 rd_NO_LUKS rd_NO_MD crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=ja_JP.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet transparent_hugepage=never


これでサーバーをreboot。すると以下のようにdefragはOFFにできませんでした。
結局/etc/rc.localは必要なので、grubは不要な方向で。

$ cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
$ cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never
$


【まとめ】
/etc/rc.localに追記して、再起動して反映させましょう。
次回はvm.swappinessをOFFにする巻、の1本立てです。


【引用・参照ページ】
http://unix.stackexchange.com/questions/99154/disable-transparent-hugepages
http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/4.2.2/CDH4-Installation-Guide/cdh4ig_topic_11_6.html
http://support.couchbase.com/entries/22160929-Transparent-Huge-Pages
http://www.oracle-base.com/articles/linux/configuring-huge-pages-for-oracle-on-linux-64.php