Votre commande est légèrement incorrecte :echo
s'exécute en tant que root mais la redirection elle-même (>
) s'exécute en tant qu'utilisateur afin qu'il ne puisse pas écrire /sys/
.
La commande suivante fonctionne bien les deux sur container-vm (basé sur debian) et gci (basé sur chromeos) :
sudo sh -c 'echo never > /sys/kernel/mm/transparent_hugepage/enabled'
Persistance de ce paramètre sur container-vm
Ajoutez ce paramètre de ligne de commande du noyau dans /etc/default/grub
(n'oubliez pas d'exécuter sudo update-grub
et sudo reboot
après):
GRUB_CMDLINE_LINUX="... transparent_hugepage=never"
Persistance de ce paramètre sur gci
Tout d'abord, à l'aide de la console cloud, copiez le modèle d'instance utilisé par le pool de nœuds.
Deuxièmement, sous métadonnées, modifiez la valeur de userdata :
#cloud-config
write_files:
- path: /etc/systemd/system/hugepage.service
permissions: 0644
owner: root
content: |
[Unit]
Description=Disable THP
[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo never > /sys/kernel/mm/transparent_hugepage/enabled"
[Install]
WantedBy=kubernetes.target
...
runcmd:
- ...
- systemctl enable hugepage.service
- systemctl start kubernetes.target
Troisièmement, remplacez le modèle d'instance par celui que vous venez de créer :
gcloud compute instance-groups managed set-instance-template \
gke-YOUCLUSTER-YOURPOOL-grp \
--template=YOURNEWTEMPLATENAME \
--zone=...
Quatrièmement, recréez la ou les instances :
gcloud compute instance-groups managed recreate-instances \
gke-YOUCLUSTER-YOURPOOL-grp \
--zone=... \
--instances=...
Les instances vont perdre toutes les données et venir avec THP désactivé. THP sera également désactivé pour toutes les nouvelles instances (dans ce pool de nœuds).