Il tuo comando è leggermente errato:echo
viene eseguito come root ma il reindirizzamento stesso (>
) viene eseguito come utente, quindi non può scrivere /sys/
.
Il comando seguente funziona bene entrambi su container-vm (basato su Debian) e gci (basato su Chromes):
sudo sh -c 'echo never > /sys/kernel/mm/transparent_hugepage/enabled'
Persistenza di questa impostazione su container-vm
Aggiungi questo parametro della riga di comando del kernel in /etc/default/grub
(non dimenticare di eseguire sudo update-grub
e sudo reboot
dopo):
GRUB_CMDLINE_LINUX="... transparent_hugepage=never"
Mantenere questa impostazione su gci
Innanzitutto, utilizzando la console cloud, copia il modello di istanza utilizzato dal pool di nodi.
In secondo luogo, sotto i metadati cambia il valore per i dati utente:
#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
Terzo, cambia il modello di istanza con quello appena creato:
gcloud compute instance-groups managed set-instance-template \
gke-YOUCLUSTER-YOURPOOL-grp \
--template=YOURNEWTEMPLATENAME \
--zone=...
In seguito, ricrea le istanze:
gcloud compute instance-groups managed recreate-instances \
gke-YOUCLUSTER-YOURPOOL-grp \
--zone=... \
--instances=...
Le istanze perderanno tutti i dati e vieni con THP disabilitato. Anche tutte le nuove istanze avranno THP disabilitato (in questo pool di nodi).