Seu comando está um pouco incorreto:
echo
é executado como root, mas o próprio redirecionamento (>
) é executado como usuário, portanto, não pode escrever /sys/
. O comando a seguir funciona bem ambos em container-vm (baseado em debian) e gci (baseado em chromeos):
sudo sh -c 'echo never > /sys/kernel/mm/transparent_hugepage/enabled'
Persistindo esta configuração em container-vm
Adicione este parâmetro de linha de comando do kernel em
/etc/default/grub
(não se esqueça de executar sudo update-grub
e sudo reboot
mais tarde):GRUB_CMDLINE_LINUX="... transparent_hugepage=never"
Persistindo esta configuração no gci
Primeiro, usando o console da nuvem, copie o modelo de instância que está em uso pelo pool de nós.
Segundo, em metadados, altere o valor 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
Terceiro, altere o modelo de instância para o recém-criado:
gcloud compute instance-groups managed set-instance-template \
gke-YOUCLUSTER-YOURPOOL-grp \
--template=YOURNEWTEMPLATENAME \
--zone=...
Em seguida, recrie a(s) instância(s):
gcloud compute instance-groups managed recreate-instances \
gke-YOUCLUSTER-YOURPOOL-grp \
--zone=... \
--instances=...
As instâncias perdem todos os dados e chegar com THP desabilitado. Todas as novas instâncias também terão o THP desabilitado (neste pool de nós).