Failing to configure hugepages on openshift 4.13 via Cluster Node Tuning Operator

68 views Asked by At

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.

0

There are 0 answers