I have closely followed the below procedure: https://docs.openshift.com/container-platform/4.13/scalability_and_performance/what-huge-pages-do-and-how-they-are-consumed-by-apps.html in an attempt to configure hugepages on two different OpenShift 4.13 clusters. And unsuccessful.
According to RedHat this is the only supported method of adding any changes to the CoreOS machine, however I can't get it to work.
Any help would be highly appreciated.
First I labelled the node:
oc label node clx2node hugepages-1g=true
Then I created and applied the following Tuned
CR:
apiVersion: tuned.openshift.io/v1
kind: Tuned
metadata:
name: hugepages-1g
namespace: openshift-cluster-node-tuning-operator
spec:
profile:
- data: |
[main]
summary=Configuration for hugepages
include=openshift-control-plane
[bootloader]
cmdline_openshift_node_hugepages=hugepagesz=2M hugepages=50
name: node-hugepages-1g
recommend:
- match:
- label: hugepages-1g=true
priority: 10
profile: node-hugepages-1g
Then I looked in the log of the tuned pod:
I1221 22:16:47.510114 106527 controller.go:494] extracting cloud provider name to /var/lib/tuned/provider
I1221 22:16:47.510225 106527 controller.go:536] written "/etc/tuned/recommend.d/50-openshift.conf" to set TuneD profile openshift-control-plane
I1221 22:16:47.510304 106527 controller.go:848] active profile (node-hugepages-1g) != recommended profile (openshift-control-plane)
I1221 22:16:47.510311 106527 controller.go:725] reloading tuned...
I1221 22:16:47.510321 106527 controller.go:728] sending HUP to PID 106570
2023-12-21 22:16:47,510 INFO tuned.daemon.daemon: stopping tuning
2023-12-21 22:16:47,510 INFO tuned.plugins.plugin_bootloader: removing grub2 tuning previously added by Tuned
E1221 22:16:47.511253 106527 controller.go:911] unable to sync(daemon/) requeued (0)
2023-12-21 22:16:47,511 INFO tuned.plugins.plugin_bootloader: cannot find grub.cfg to patch
E1221 22:16:47.611533 106527 controller.go:911] unable to sync(daemon/) requeued (1)
As far as I understand, if the configuration was successful, the node was supposed to reboot and apply the boot parameters to enable hugepages. However, nothing happened.
Obviously the kubernetes node config doesn't have hugepages enabled either:
k describe node | grep huge
hugepages-1g=true
hugepages-1Gi: 0
hugepages-2Mi: 0
hugepages-1Gi: 0
hugepages-2Mi: 0
hugepages-1Gi 0 (0%) 0 (0%)
hugepages-2Mi 0 (0%) 0 (0%)
The values I used in the examples above slightly differ from the ones in the documentation, but this is because I have first tried those ones and couldn't get it to work, so decided to try different things. This is as close as I could get to at least seeing some meaningful logs.