Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can the balloons policy allocate logical CPUs in an order without holes in the numbering? #210

Open
askervin opened this issue Dec 18, 2023 · 0 comments

Comments

@askervin
Copy link
Collaborator

Description

  1. Deploy balloons policy with config that allocates "cpu0" from both packages of a two-socket system to the reserved balloon, and creates four balloons (13-14 CPUs each) on every NUMA node. NUMA nodes have 56 CPUs (28 hyperthreaded CPU cores).
config:
  reservedResources:
    cpu: "cpuset:0,112,56,168"
  idleCPUClass: normal
  allocatorTopologyBalancing: true
  balloonTypes:
  - name: test
    namespaces:
      - default
    minCPUs: 13
    maxCPUs: 14
    minBalloons: 16
    maxBalloons: 16
    preferSpreadOnPhysicalCores: true
    preferNewBalloons: true
  reservedPoolNamespaces:
    - kube-system
  log:
    source: true
    klog:
      skip_headers: true
  instrumentation:
    reportPeriod: 60s
    samplingRatePerMillion: 0
    httpEndpoint: :8891
    prometheusExport: true
  1. The first balloon (test[0]) gets contiguously numbered CPUs, but the second (test[1]) does not:
curl http://localhost:8891/metrics
balloons{balloon="test[0]",...,,cpus="140-152",...
balloons{balloon="test[1]",...,cpus="84,100-111",...
lscpu
...
  NUMA node0 CPU(s):     0-27,112-139
  NUMA node1 CPU(s):     28-55,140-167
  NUMA node2 CPU(s):     56-83,168-195
  NUMA node3 CPU(s):     84-111,196-223

Why this happens? Is it possible to change the CPU assignment so that test[1] would be contiguous, too?

Rationale

Contiguous numberings are easier for validation of CPUs in balloons.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant