54 votes

Comment modifier "/sys/kernel/mm/transparent_hugepage/enabled" ?

Je utilise mongodb 3.0 et Je trouve un avertissement:

Version de la shell MongoDB : 3.0.0
Connexion à : test
Le serveur a des avertissements au démarrage : 
2015-03-13T16:28:29.405+0800 I CONTROL  [initandlisten] 
2015-03-13T16:28:29.406+0800 I CONTROL  [initandlisten] ** ATTENTION : /sys/kernel/mm/transparent_hugepage/enabled est 'always'.
2015-03-13T16:28:29.406+0800 I CONTROL  [initandlisten] **        Nous vous suggérons de le définir sur 'never'
2015-03-13T16:28:29.406+0800 I CONTROL  [initandlisten] 
2015-03-13T16:28:29.407+0800 I CONTROL  [initandlisten] ** ATTENTION : /sys/kernel/mm/transparent_hugepage/defrag est 'always'.
2015-03-13T16:28:29.407+0800 I CONTROL  [initandlisten] **        Nous vous suggérons de le définir sur 'never'
2015-03-13T16:28:29.407+0800 I CONTROL  [initandlisten]

~# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never

~# cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never

J'essaie d'utiliser echo, mais ce n'est pas permanent, après le redémarrage, il sera réinitialisé.

echo never > /sys/kernel/mm/transparent_hugepage/defrag

Comment modifier /sys/kernel/mm/transparent_hugepage/enabled de manière permanente?

0voto

Whyhankee Points 101

Étant donné que nous déployons des machines avec Ansible, je n'aime pas modifier les fichiers rc.

J'ai essayé d'utiliser sysfsutils / sysfs.conf mais j'ai rencontré des problèmes de synchronisation lors du démarrage des services sur des machines rapides (ou lentes). Il semblait parfois que mongod était démarré avant sysfsutils. Parfois cela fonctionnait, parfois non.

Comme mongod est un processus upstart, j'ai trouvé que la solution la plus propre était d'ajouter le fichier /etc/mongo_vm_settings.conf avec le contenu suivant:

# Fichier upstart Ubuntu à /etc/init/mongod_vm_settings.conf
#
#   Ce fichier définira les paramètres VM du noyau corrects pour MongoDB
#   Ce fichier est maintenu dans Ansible

start on (starting mongod)
script
  echo "never" > /sys/kernel/mm/transparent_hugepage/enabled
  echo "never" > /sys/kernel/mm/transparent_hugepage/defrag
end script

Cela exécutera le script juste avant le démarrage de mongod. Redémarrez mongod (sudo service mongod restart) et c'est fini.

0voto

Ulv3r Points 1

Après avoir lu un peu dans le journal d'avertissement, j'ai ajouté ces deux lignes dans /etc/sysfs.conf et voilá

kernel/mm/transparent_hugepage/enabled = never
kernel/mm/transparent_hugepage/defrag = never

Redémarrez la machine après avoir appliqué ces changements.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X