Lệnh của bạn hơi không chính xác:echo
chạy dưới dạng root nhưng tự chuyển hướng (>
) chạy với tư cách người dùng nên nó không thể ghi /sys/
.
Lệnh sau hoạt động tốt cả hai trên container-vm (dựa trên debian) và gci (dựa trên chromeos):
sudo sh -c 'echo never > /sys/kernel/mm/transparent_hugepage/enabled'
Duy trì cài đặt này trên container-vm
Thêm tham số dòng lệnh hạt nhân này vào /etc/default/grub
(đừng quên chạy sudo update-grub
và sudo reboot
sau đó):
GRUB_CMDLINE_LINUX="... transparent_hugepage=never"
Duy trì cài đặt này trên gci
Đầu tiên, bằng cách sử dụng bảng điều khiển đám mây, sao chép mẫu phiên bản đang được nhóm nút sử dụng.
Thứ hai, trong siêu dữ liệu, hãy thay đổi giá trị cho dữ liệu người dùng:
#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
Thứ ba, thay đổi mẫu phiên bản thành mẫu mới được tạo:
gcloud compute instance-groups managed set-instance-template \
gke-YOUCLUSTER-YOURPOOL-grp \
--template=YOURNEWTEMPLATENAME \
--zone=...
Thứ nhất, hãy tạo lại (các) instace:
gcloud compute instance-groups managed recreate-instances \
gke-YOUCLUSTER-YOURPOOL-grp \
--zone=... \
--instances=...
Các phiên bản sẽ mất tất cả dữ liệu và đến với THP bị vô hiệu hóa. Tất cả các phiên bản mới cũng sẽ bị vô hiệu hóa THP (trong nhóm nút này).