Je souhaite désactiver transparent_hugepage (THP) sur une instance CentOS 7 EC2, qui est activée par défaut:
# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
# cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never
Ce paramètre peut être modifié manuellement:
# echo never > /sys/kernel/mm/transparent_hugepage/enabled
# echo never > /sys/kernel/mm/transparent_hugepage/defrag
# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
# cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]
... mais les modifications sont perdues après le redémarrage.
J'ai essayé de mettre l' echo never [...]
instruction dans mes fichiers rc.local
et cloud.cfg
, mais cela n'a pas fonctionné.
J'ai également essayé d'ajouter le paramètre transparent_hugepage=never
à la ligne du noyau de /etc/grub.conf
(comme expliqué ici ), mais cela n'a pas fonctionné mieux.
Alors ... comment puis-je désactiver THP sur CentOS 7 fonctionnant sur une instance AWS EC2?
edit: changement de titre ... J'ai besoin de désactiver THP et THP defrag
amazon-ec2
centos7
grub
vcarel
la source
la source
Réponses:
La solution est à l' écoute , comme l'a souligné @ michael-hampton. La partie délicate est que le plugin vm ne peut configurer que le
/sys/kernel/mm/transparent_hugepage/enabled
paramètre.Pour désactiver également le
/sys/kernel/mm/transparent_hugepage/defrag
paramètre, j'ai dû créer un script appelé par le profil au démarrage.Au final, la solution complète est:
étape 1 : Créez le répertoire pour contenir le profil personnalisé:
étape 2 : créer le profil
/etc/tuned/custom/tuned.conf
:Notez que ce profil hérite de virtual-guest , qui était mon profil actif, semblant en fait approprié pour le serveur virtualisé (EC2). Vous pouvez afficher votre profil actif avec la commande
tuned-adm active
. Si vous êtes curieux, vous pouvez consulter le contenu des profils prédéfinis dans/usr/lib/tuned/
étape 3 : Créez le script
/etc/tuned/custom/script.sh
:Rendez-le exécutable:
étape 4 : Activez le nouveau profil:
Vous devriez maintenant obtenir:
Il persistera après le redémarrage.
la source
En plus de définir la ligne de commande grub, vous devez également configurer tuned. Mais n'utilisez pas les instructions auxquelles vous avez lié, car elles sont si pleines d'erreurs qu'il faudrait une demi-journée juste pour les expliquer toutes.
Créez un profil personnalisé (que j'appellerai
custom
), puis définissez le profil. Vous le baserez sur un profil existant, par exemplevirtual-guest
si vous exécutez sur une machine virtuelle (EC2 l'est, bien sûr), outhroughput-performance
si vous êtes sur une machine physique.Créez le répertoire pour contenir le profil personnalisé:
Créez le profil personnalisé
/etc/tuned/custom/tuned.conf
, par exemple:Définissez maintenant le profil:
la source
Essayez aussi ceci
la source
Vous pouvez éditer le fichier /etc/rc.local et ajouter cette commande suivante à ce fichier:
et exécutez
chmod +x /etc/rc.d/rc.local
pour vous assurer que le script sera exécuté au démarrage. testé sur Amazon Linux 2.la source
EDIT: la réponse ci-dessus est fausse , car les boutons transparents de page énorme sont manquants dans sysctl pour le moment. Désolé pour le bruit.
Vous pouvez saisir les valeurs souhaitées
/etc/sysctl.conf
.A partir de la page de manuel sysctl.conf (5):
la source