Recibo la siguiente advertencia de mongodb sobre 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'
Pero me las arreglé para apagar THP manualmente
frederick@UbuntuVirtual:~$ cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
frederick@UbuntuVirtual:~$ cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]
Hice el truco añadiendo transparent_hugepage=never
a GRUB_CMDLINE_LINUX_DEFAULT
en /etc/default/grub
y añadiendo
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
a /etc/rc.local
¿Cómo diablos puedo evitar la advertencia?
linux
mongodb
linux-kernel
Frederick Zhang
fuente
fuente
sudo service mongod restart
y la advertencia se fue! ¡Gracias! esto es extraño, ¿por qué no puedo simplemente reiniciar la máquina virtual?Respuestas:
La documentación oficial de MongoDB ofrece varias soluciones para este problema. También puede probar esta solución , que funcionó para mí:
Nota: Pruebe las directivas de documentación oficial si la versión de MongoDB es superior a 3.0
Abrir
/etc/init.d/mongod
archivo.(si no existe tal archivo se podría verificar
/etc/init.d/mongod
,/etc/init/mongod.conf
archivos - de crédito: el siguiente comentarios)Agregue las líneas a continuación inmediatamente después
chown $DAEMONUSER /var/run/mongodb.pid
y antesend script
.mongod
(service mongod restart
).Aquí están las líneas para agregar
/etc/init.d/mongod
:¡Eso es!
fuente
MongoDB ha actualizado su recomendación para usar un script init.d ahora: http://docs.mongodb.org/master/tutorial/transparent-huge-pages/
fuente
Para Ubuntu 14.04 usando upstart:
Dado que estamos implementando máquinas con Ansible, no me gusta modificar archivos rc o configuraciones de GRUB.
Intenté usar
sysfsutils
/sysfs.conf
pero encontré problemas de sincronización al iniciar los servicios en máquinas rápidas (o lentas). Parecía que a veces mongod se iniciaba antes que sysfsutils. A veces funcionó, a veces no.Dado que mongod es un proceso advenedizo, descubrí que la solución más limpia era agregar el archivo
/etc/init/mongod_vm_settings.conf
con el siguiente contenido:Esto ejecutará el script justo antes de que se inicie mongod. Reinicie mongod (
sudo service mongod restart
) y listo.fuente
Abra / etc / default / grub
sudo vi / etc / default / grub
Actualice
GRUB_CMDLINE_LINUX_DEFAULT = "" a GRUB_CMDLINE_LINUX_DEFAULT = "transparent_hugepage = never"
: wq (en vi)
Ejecute update-grub
sudo update-grub
Reiniciar la máquina
Actualización: si está utilizando un proveedor de alojamiento virtual, esto funcionará. Se admite el arranque de grub IFF. DigitalOcean NO admite arranque grub.
fuente
Verificado que la desfragmentación se examina sin tener en cuenta el habilitado:
Por lo tanto, la solución a este error es mirar primero a transparent_hugepage / enabled, y si nunca es así, no se moleste en mirar la configuración irrelevante de transparent_hugepage / defrag.
Fuente .
fuente
Ubuntu 16.04 usando systemd:
systemctl edit mongod
Pega lo siguiente:
fuente