Váš příkaz je mírně nesprávný:echo
běží jako root, ale přesměrování samotné (>
) běží jako uživatel, takže nemůže zapisovat /sys/
.
Následující příkaz funguje dobře obě na kontejneru-vm (založeno na Debianu) a gci (založené na Chromeos):
sudo sh -c 'echo never > /sys/kernel/mm/transparent_hugepage/enabled'
Přetrvání tohoto nastavení na kontejneru-vm
Přidejte tento parametr příkazového řádku jádra do /etc/default/grub
(nezapomeňte spustit sudo update-grub
a sudo reboot
poté):
GRUB_CMDLINE_LINUX="... transparent_hugepage=never"
Přetrvání tohoto nastavení na gci
Nejprve pomocí cloudové konzoly zkopírujte šablonu instance, kterou používá fond uzlů.
Za druhé, v části metadata změňte hodnotu pro uživatelská data:
#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
Za třetí, změňte šablonu instance na nově vytvořenou:
gcloud compute instance-groups managed set-instance-template \
gke-YOUCLUSTER-YOURPOOL-grp \
--template=YOURNEWTEMPLATENAME \
--zone=...
Začtvrte znovu vytvořte instace:
gcloud compute instance-groups managed recreate-instances \
gke-YOUCLUSTER-YOURPOOL-grp \
--zone=... \
--instances=...
Instance přijdou o všechna data a přijít s vypnutým THP. Všechny nové instance budou mít také zakázáno THP (v tomto fondu uzlů).