From 15a6f4a86111926a974d63cc61387f3ed8048d65 Mon Sep 17 00:00:00 2001 From: Ryan Yin Date: Mon, 29 Jul 2024 22:07:10 +0800 Subject: [PATCH] fix: allocate only hugepages with size 1Gi --- hosts/k8s/kubevirt-shoryu/default.nix | 12 ++++++++++++ hosts/k8s/kubevirt-shushou/default.nix | 12 ++++++++++++ hosts/k8s/kubevirt-youko/default.nix | 12 ++++++++++++ 3 files changed, 36 insertions(+) diff --git a/hosts/k8s/kubevirt-shoryu/default.nix b/hosts/k8s/kubevirt-shoryu/default.nix index cd198a925..f4ab5fe07 100644 --- a/hosts/k8s/kubevirt-shoryu/default.nix +++ b/hosts/k8s/kubevirt-shoryu/default.nix @@ -49,4 +49,16 @@ in { coreModule k3sModule ]; + + # https://kubernetes.io/docs/tasks/manage-hugepages/scheduling-hugepages/ + boot.kernelParams = [ + # disable transparent hugepage(allocate hugepages dynamically) + "transparent_hugepage=never" + + # pre-allocate hugepages manually(for kubevirt guest vms) + # NOTE: the hugepages allocated here can not be used for other purposes! + # so we should left some memory for the host OS + "hugepagesz=1G" + "hugepages=56" + ]; } diff --git a/hosts/k8s/kubevirt-shushou/default.nix b/hosts/k8s/kubevirt-shushou/default.nix index 75eb85458..b6f84020f 100644 --- a/hosts/k8s/kubevirt-shushou/default.nix +++ b/hosts/k8s/kubevirt-shushou/default.nix @@ -43,4 +43,16 @@ in { coreModule k3sModule ]; + + # https://kubernetes.io/docs/tasks/manage-hugepages/scheduling-hugepages/ + boot.kernelParams = [ + # disable transparent hugepage(allocate hugepages dynamically) + "transparent_hugepage=never" + + # pre-allocate hugepages manually(for kubevirt guest vms) + # NOTE: the hugepages allocated here can not be used for other purposes! + # so we should left some memory for the host OS + "hugepagesz=1G" + "hugepages=56" + ]; } diff --git a/hosts/k8s/kubevirt-youko/default.nix b/hosts/k8s/kubevirt-youko/default.nix index 00a5a0c23..2b2e3a292 100644 --- a/hosts/k8s/kubevirt-youko/default.nix +++ b/hosts/k8s/kubevirt-youko/default.nix @@ -43,4 +43,16 @@ in { coreModule k3sModule ]; + + # https://kubernetes.io/docs/tasks/manage-hugepages/scheduling-hugepages/ + boot.kernelParams = [ + # disable transparent hugepage(allocate hugepages dynamically) + "transparent_hugepage=never" + + # pre-allocate hugepages manually(for kubevirt guest vms) + # NOTE: the hugepages allocated here can not be used for other purposes! + # so we should left some memory for the host OS + "hugepagesz=1G" + "hugepages=18" + ]; }