How can we help you?

Linux Memory Management - Disable Transparent Hugepages / 'madvise'

“Transparent Hugepages” is a Linux kernel feature intended to improve performance by making more efficient use of your processor’s memory-mapping hardware. It is enabled (“enabled=always”) by default in most Linux distributions.

 

Transparent Hugepages give some applications a small performance improvement (~ 10% at best, 0-3% more typically), but can cause significant performance problems, or even apparent memory leaks at worst.

 

To avoid these problems, you should set enabled=madvise on your servers by running

 

echo madvise | sudo tee /sys/kernel/mm/transparent_hugepage/enabled

 

and setting transparent_hugepage=madvise on your kernel command line (e.g. in /etc/default/grub).

 

This change will allow applications that are optimized for transparent huge pages to obtain the performance benefits, and prevent the associated problems otherwise.