Os documentos do MongoDB têm algumas sugestões. link
A maneira "preferida" é editar /etc/default/grub
e anexar transparent_hugepage=never
a GRUB_CMDLINE_LINUX_DEFAULT
, em seguida, executar update-grub
para reconstruir a configuração do GRUB.
O seguinte verso fará exatamente isso. Certifique-se de verificar a saída!
sed -r 's/GRUB_CMDLINE_LINUX_DEFAULT="[a-zA-Z0-9_= ]*/& transparent_hugepage=never/' /etc/default/grub | sudo tee /etc/default/grub
sudo update-grub
Observe que update-grub
é um wrapper para grub-mkconfig
. grub-mkconfig
irá atrapalhar as entradas em /etc/default/grub
com as de /etc/default/grub.d/*
.
Se por acaso você estiver executando o AWS, será necessário editar /etc/default/grub.d/50-cloudimg-settings.cfg
.
O método "alternativo" é editar /etc/rc.local
e adicionar o seguinte antes de exit 0
:
if test -f /sys/kernel/mm/transparent_hugepage/khugepaged/defrag; then
echo 0 > /sys/kernel/mm/transparent_hugepage/khugepaged/defrag
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
Pessoalmente, acabei fazendo os métodos "preferido" e "alternativo", já que eles não são mutuamente exclusivos e elimina o aviso sobre desfragmentação.
* Trabalhei para mim no Ubuntu 14.04, no MongoDB 3.0.2 e no AWS.