Ihr Befehl ist etwas falsch:echo
läuft als root, aber die Umleitung selbst (>
) wird als Benutzer ausgeführt, sodass /sys/
nicht geschrieben werden kann .
Der folgende Befehl funktioniert gut beide auf container-vm (debian-basiert) und gci (chromeos-basiert):
sudo sh -c 'echo never > /sys/kernel/mm/transparent_hugepage/enabled'
Beibehalten dieser Einstellung auf container-vm
Fügen Sie diesen Kernel-Befehlszeilenparameter in /etc/default/grub
hinzu (Vergessen Sie nicht, sudo update-grub
auszuführen und sudo reboot
danach):
GRUB_CMDLINE_LINUX="... transparent_hugepage=never"
Diese Einstellung auf gci beibehalten
Kopieren Sie zunächst mithilfe der Cloud-Konsole die Instanzvorlage, die vom Knotenpool verwendet wird.
Zweitens ändern Sie unter Metadaten den Wert für Benutzerdaten:
#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
Drittens ändern Sie die Instanzvorlage in die neu erstellte:
gcloud compute instance-groups managed set-instance-template \
gke-YOUCLUSTER-YOURPOOL-grp \
--template=YOURNEWTEMPLATENAME \
--zone=...
Als nächstes erstellen Sie die Instanz(en) neu:
gcloud compute instance-groups managed recreate-instances \
gke-YOUCLUSTER-YOURPOOL-grp \
--zone=... \
--instances=...
Die Instanzen werden alle Daten verlieren und kommen mit THP deaktiviert. Bei allen neuen Instanzen wird THP ebenfalls deaktiviert (in diesem Knotenpool).