Uploaded image for project: 'OpenShift Virtualization'
  1. OpenShift Virtualization
  2. CNV-14180

[2004950] Kubevirt doesn't respect cpuAllocationRatio

XMLWordPrintable

    • High
    • None

      +++ This bug was initially created as a clone of Bug #2002313 +++

      Description of problem:

      I installed OpenShift Virtualization 4.8.1 and created different VMs with different specs. I used different numbers for cpu core field. However, Kubevirt doesn't change the requested cpu amount in virt-launcher spec. It was always 100m.

      Version-Release number of selected component (if applicable): 4.8.1

      Actual results:
      All virt-launcher pods contains the same amount of cpu. 100m

      Expected results: It should be proportional to VM spec as explained here: http://kubevirt.io/user-guide/operations/node_overcommit/#node-cpu-allocation-ratio

      Additional info: HCO is not setting cpuAllocationRatio in Kubevirt and it is empty by default.

      — Additional comment from Kedar Bidarkar on 2021-09-08 18:45:46 UTC —

      Tried to reproduce this:

      a) Explicitly set the "cpuAllocationRatio" value via the JSON Annotation Patch.

      ]$ oc annotate --overwrite -n openshift-cnv hyperconverged kubevirt-hyperconverged kubevirt.kubevirt.io/jsonpatch='[

      { "op": "add", "path": "/spec/configuration/developerConfiguration/cpuAllocationRatio", "value": 20 }

      ]'

      b) Value appears set correctly

      ]$ oc get kubevirt kubevirt-kubevirt-hyperconverged -n openshift-cnv -o yaml | grep -A 5 "configuration:"
      configuration:
      developerConfiguration:
      cpuAllocationRatio: 20
      diskVerification:
      memoryLimit: 2G
      featureGates:

      c) I had set the "cores" count under "cpu" as 6
      ]$ oc get vmi vm22-rhel84-ocs -o yaml | grep -A 5 "cpu:"
      cpu:
      cores: 6
      sockets: 1
      threads: 1

      d) virt-launcher pod shows "cpu: 100m"

      ]$ oc get pod virt-launcher-vm22-rhel84-ocs-sv46l -o yaml | grep "cpu:"
      cpu: 100m

      POD CPU request = number of vCPUs * 1/cpuAllocationRatio

      Probably the expected value should have been 6/20 = 330m or 300m , IIUC


      e)
      Logged into the VM and checked for the nproc value. It is indeed 6.

      [cloud-user@vm22-rhel84-ocs ~]$ nproc
      6

      — Additional comment from Kedar Bidarkar on 2021-09-08 18:47:41 UTC —

      comment1 stuff was reproduced on CNV-4.9.0.

      — Additional comment from Vladik Romanovsky on 2021-09-13 15:30:09 UTC —

      I've posted https://github.com/kubevirt/kubevirt/pull/6374 to fix this.

            vromanso@redhat.com Vladik Romanovsky
            kbidarka@redhat.com Kedar Bidarkar
            Kedar Bidarkar Kedar Bidarkar
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: