Uploaded image for project: 'OpenShift Bugs'
  1. OpenShift Bugs
  2. OCPBUGS-14051

kubelet: do not set CPU quota for guaranteed pods

XMLWordPrintable

    • Important
    • No
    • False
    • Hide

      None

      Show
      None
    • Customer Escalated
    • 8/8: pending next steps / forecast for 4.12.z fix, if one is still planned (vs. customer use of annotations)

      Description of problem:

      since 4.12 we have the NOHZ_FULL kernel argument added by default and that somehow triggers throttling if quota not disabled
      
      remove quota only in cases, when:
      
      CPU manager runs with the static policy
      The pod has guaranteed QoS
      The container requested whole CPUs

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

       

      How reproducible:

      4.12 with apps using Sriov pod has guaranteed QoS

      Steps to Reproduce:

      1.
      2.
      3.
      

      Actual results:

      In theory setting CPU CFS quota for CPU pinned pods should not affect performance, but in practice it does cause performance degradation due to the (buggy) way that CFS quota are implemented in the Linux kernel.I think the best fix would be to unset any CPU CFS quota from the pod in the CPU manager when reserved CPUs (CPU sets) are assigned

      Expected results:

      the pod should not have CFS quota defined.

      Additional info:

      My understanding is that if the pod is in guaranteed QoS class and requests integral number of cpus, it should not be subject to CFS quota

            msivak@redhat.com Martin Sivak
            rhn-support-adhingra Anil Dhingra
            Michael Nguyen Michael Nguyen
            Francesco Romani
            Votes:
            0 Vote for this issue
            Watchers:
            11 Start watching this issue

              Created:
              Updated: