Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to avoid transparent_hugepage/defrag warning from mongodb?

I'm receiving the following warning from mongodb about THP

2015-03-06T21:01:15.526-0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. 2015-03-06T21:01:15.526-0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never' 

But I did manage to turned THP off manually

frederick@UbuntuVirtual:~$ cat /sys/kernel/mm/transparent_hugepage/enabled always madvise [never] frederick@UbuntuVirtual:~$ cat /sys/kernel/mm/transparent_hugepage/defrag always madvise [never] 

I did the trick by adding transparent_hugepage=never to GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub and adding

if test -f /sys/kernel/mm/transparent_hugepage/defrag; then    echo never > /sys/kernel/mm/transparent_hugepage/defrag fi 

to /etc/rc.local

How on earth can I avoid the warning?

like image 214
Frederick Zhang Avatar asked Mar 07 '15 05:03

Frederick Zhang


People also ask

How do I disable transparent huge pages THP on Red Hat Enterprise Linux 8?

THP are currently enabled in your Linux operating system. To disable Transparent Huge Pages, you have to edit GRUB boot menu. For this purpose, edit the GRUB configuration file in vim text editor. Locate GRUB_CMDLINE_LINUX and append "transparent_hugepage=never" at the end of that line.


2 Answers

Official MongoDB documentation gives several solutions for this issue. You can also try this solution, which worked for me:

Note: Try official documentation directives if MongoDB version is greater than 3.0

  1. Open /etc/init.d/mongod file.
    (if no such file you might check /etc/init.d/mongod, /etc/init/mongod.conf files - credit: the below comments)

  2. Add the lines below immediately after chown $DAEMONUSER /var/run/mongodb.pid and before end script.

  3. Restart mongod (service mongod restart).

Here are the lines to add to /etc/init.d/mongod:

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 

That's it!

like image 191
efkan Avatar answered Sep 29 '22 04:09

efkan


MongoDB have updated their recommendation to use an init.d script now: http://docs.mongodb.org/master/tutorial/transparent-huge-pages/

like image 21
robbie613 Avatar answered Sep 29 '22 03:09

robbie613