← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1842616] [NEW] NUMA vcpus not correctly allocated against numa regions

 

Public bug reported:

Hello,

Using Rocky. Ubuntu 18. 2:18.2.1-0ubuntu1~cloud4
CPU overallocation 2.0
RAM overallocation 1.0 
2 sockets, 2 numa nodes per socket. HT disabled.

Intended behavior: Creating an instance that has the size of a numa node
and half of the ram of the numa node. Essentially in a full hypervisor
there will be 8 instances, 2 each numa nodes, with their core contained
in the numa node.

Actual behavior: All instances are spinning up on the first numa node,
not respecting neither the ram allocation or the cores allocation. After
two instances that spin up in a numa node, there should not be any more
ram available for a third one, though it gets allocated anyway.

In the schedulers, NUMATopologyFilter filters are enabled.

FLAVOR DETAILS:
ubuntu@gateway:~$ openstack flavor show r1.V100-4C
+----------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
| Field                      | Value                                                                                                                                  |
+----------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
| OS-FLV-DISABLED:disabled   | False                                                                                                                                  |
| OS-FLV-EXT-DATA:ephemeral  | 0                                                                                                                                      |
| access_project_ids         | 2bf7e287aba345c1a3d0a8e177aeccd6, 67966a3eab174fbc9534161b71252499, 74d26c45f1ea4b64971d7cbfa67d151e, 858743e80de542918fe081bbd57c5145 |
| disk                       | 80                                                                                                                                     |
| id                         | 1e55637f-bb09-447c-84bc-181931a36e50                                                                                                   |
| name                       | r1.V100-4C                                                                                                                             |
| os-flavor-access:is_public | False                                                                                                                                  |
| properties                 | hw:cpu_cores='7', hw:cpu_sockets='1', hw:numa_nodes='1', vgpu-type='hpe-r6-vgpu-V100-4C'                                               |
| ram                        | 46080                                                                                                                                  |
| rxtx_factor                | 1.0                                                                                                                                    |
| swap                       |                                                                                                                                        |
| vcpus                      | 7                                                                                                                                      |
+----------------------------+----------------------------------------------------------------------------------------------------------------------------------------+

## NUMA
root@compute-r6-h30:/sys/class/mdev_bus/0000:86:00.0# numactl --hardware
available: 4 nodes (0-3)
node 0 cpus: 0 1 2 3 4 5 6
node 0 size: 96419 MB
node 0 free: 86437 MB
node 1 cpus: 7 8 9 10 11 12 13
node 1 size: 96745 MB
node 1 free: 95438 MB
node 2 cpus: 14 15 16 17 18 19 20
node 2 size: 96766 MB
node 2 free: 92110 MB
node 3 cpus: 21 22 23 24 25 26 27
node 3 size: 96766 MB
node 3 free: 96498 MB
node distances:
node   0   1   2   3
  0:  10  21  31  31
  1:  21  10  31  31
  2:  31  31  10  21
  3:  31  31  21  10

## INSTANCES details (spun up one after the other)
root@compute-r6-h30:/sys/class/mdev_bus/0000:86:00.0# virsh list --all
 Id    Name                           State
----------------------------------------------------
 1     instance-00008c77              running
 2     instance-00008c7a              running
 3     instance-00008c7d              running
 
root@compute-r6-h30:/sys/class/mdev_bus/0000:86:00.0# virsh vcpuinfo instance-00008c77
VCPU:           0
CPU:            3
State:          running
CPU time:       14.1s
CPU Affinity:   yyyyyyy---------------------
 
VCPU:           1
CPU:            4
State:          running
CPU time:       0.9s
CPU Affinity:   yyyyyyy---------------------
 
VCPU:           2
CPU:            0
State:          running
CPU time:       1.3s
CPU Affinity:   yyyyyyy---------------------
 
VCPU:           3
CPU:            2
State:          running
CPU time:       2.0s
CPU Affinity:   yyyyyyy---------------------
 
VCPU:           4
CPU:            4
State:          running
CPU time:       1.8s
CPU Affinity:   yyyyyyy---------------------
 
VCPU:           5
CPU:            1
State:          running
CPU time:       1.1s
CPU Affinity:   yyyyyyy---------------------
 
VCPU:           6
CPU:            2
State:          running
CPU time:       1.1s
CPU Affinity:   yyyyyyy---------------------
 
 
root@compute-r6-h30:/sys/class/mdev_bus/0000:86:00.0# virsh vcpuinfo instance-00008c7a
VCPU:           0
CPU:            4
State:          running
CPU time:       14.2s
CPU Affinity:   yyyyyyy---------------------
 
VCPU:           1
CPU:            1
State:          running
CPU time:       0.9s
CPU Affinity:   yyyyyyy---------------------
 
VCPU:           2
CPU:            4
State:          running
CPU time:       1.2s
CPU Affinity:   yyyyyyy---------------------
 
VCPU:           3
CPU:            3
State:          running
CPU time:       0.8s
CPU Affinity:   yyyyyyy---------------------
 
VCPU:           4
CPU:            4
State:          running
CPU time:       1.7s
CPU Affinity:   yyyyyyy---------------------
 
VCPU:           5
CPU:            3
State:          running
CPU time:       3.6s
CPU Affinity:   yyyyyyy---------------------
 
VCPU:           6
CPU:            2
State:          running
CPU time:       1.4s
CPU Affinity:   yyyyyyy---------------------
 
root@compute-r6-h30:/sys/class/mdev_bus/0000:86:00.0# virsh vcpuinfo instance-00008c7a
VCPU:           0
CPU:            6
State:          running
CPU time:       14.2s
CPU Affinity:   yyyyyyy---------------------
 
VCPU:           1
CPU:            2
State:          running
CPU time:       0.9s
CPU Affinity:   yyyyyyy---------------------
 
VCPU:           2
CPU:            0
State:          running
CPU time:       1.2s
CPU Affinity:   yyyyyyy---------------------
 
VCPU:           3
CPU:            3
State:          running
CPU time:       0.8s
CPU Affinity:   yyyyyyy---------------------
 
VCPU:           4
CPU:            6
State:          running
CPU time:       1.7s
CPU Affinity:   yyyyyyy---------------------
 
VCPU:           5
CPU:            1
State:          running
CPU time:       3.6s
CPU Affinity:   yyyyyyy---------------------
 
VCPU:           6
CPU:            4
State:          running
CPU time:       1.4s
CPU Affinity:   yyyyyyy---------------------
 
 
 
root@compute-r6-h30:/sys/class/mdev_bus/0000:86:00.0# virsh vcpuinfo instance-00008c7d
VCPU:           0
CPU:            4
State:          running
CPU time:       13.7s
CPU Affinity:   yyyyyyy---------------------
 
VCPU:           1
CPU:            4
State:          running
CPU time:       1.4s
CPU Affinity:   yyyyyyy---------------------
 
VCPU:           2
CPU:            6
State:          running
CPU time:       1.0s
CPU Affinity:   yyyyyyy---------------------
 
VCPU:           3
CPU:            5
State:          running
CPU time:       0.5s
CPU Affinity:   yyyyyyy---------------------
 
VCPU:           4
CPU:            0
State:          running
CPU time:       0.5s
CPU Affinity:   yyyyyyy---------------------
 
VCPU:           5
CPU:            1
State:          running
CPU time:       0.3s
CPU Affinity:   yyyyyyy---------------------
 
VCPU:           6
CPU:            2
State:          running
CPU time:       1.2s
CPU Affinity:   yyyyyyy---------------------

** Affects: nova
     Importance: Undecided
         Status: New


** Tags: numa scheduler

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1842616

Title:
  NUMA vcpus not correctly allocated against numa regions

Status in OpenStack Compute (nova):
  New

Bug description:
  Hello,

  Using Rocky. Ubuntu 18. 2:18.2.1-0ubuntu1~cloud4
  CPU overallocation 2.0
  RAM overallocation 1.0 
  2 sockets, 2 numa nodes per socket. HT disabled.

  Intended behavior: Creating an instance that has the size of a numa
  node and half of the ram of the numa node. Essentially in a full
  hypervisor there will be 8 instances, 2 each numa nodes, with their
  core contained in the numa node.

  Actual behavior: All instances are spinning up on the first numa node,
  not respecting neither the ram allocation or the cores allocation.
  After two instances that spin up in a numa node, there should not be
  any more ram available for a third one, though it gets allocated
  anyway.

  In the schedulers, NUMATopologyFilter filters are enabled.

  FLAVOR DETAILS:
  ubuntu@gateway:~$ openstack flavor show r1.V100-4C
  +----------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
  | Field                      | Value                                                                                                                                  |
  +----------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
  | OS-FLV-DISABLED:disabled   | False                                                                                                                                  |
  | OS-FLV-EXT-DATA:ephemeral  | 0                                                                                                                                      |
  | access_project_ids         | 2bf7e287aba345c1a3d0a8e177aeccd6, 67966a3eab174fbc9534161b71252499, 74d26c45f1ea4b64971d7cbfa67d151e, 858743e80de542918fe081bbd57c5145 |
  | disk                       | 80                                                                                                                                     |
  | id                         | 1e55637f-bb09-447c-84bc-181931a36e50                                                                                                   |
  | name                       | r1.V100-4C                                                                                                                             |
  | os-flavor-access:is_public | False                                                                                                                                  |
  | properties                 | hw:cpu_cores='7', hw:cpu_sockets='1', hw:numa_nodes='1', vgpu-type='hpe-r6-vgpu-V100-4C'                                               |
  | ram                        | 46080                                                                                                                                  |
  | rxtx_factor                | 1.0                                                                                                                                    |
  | swap                       |                                                                                                                                        |
  | vcpus                      | 7                                                                                                                                      |
  +----------------------------+----------------------------------------------------------------------------------------------------------------------------------------+

  ## NUMA
  root@compute-r6-h30:/sys/class/mdev_bus/0000:86:00.0# numactl --hardware
  available: 4 nodes (0-3)
  node 0 cpus: 0 1 2 3 4 5 6
  node 0 size: 96419 MB
  node 0 free: 86437 MB
  node 1 cpus: 7 8 9 10 11 12 13
  node 1 size: 96745 MB
  node 1 free: 95438 MB
  node 2 cpus: 14 15 16 17 18 19 20
  node 2 size: 96766 MB
  node 2 free: 92110 MB
  node 3 cpus: 21 22 23 24 25 26 27
  node 3 size: 96766 MB
  node 3 free: 96498 MB
  node distances:
  node   0   1   2   3
    0:  10  21  31  31
    1:  21  10  31  31
    2:  31  31  10  21
    3:  31  31  21  10

  ## INSTANCES details (spun up one after the other)
  root@compute-r6-h30:/sys/class/mdev_bus/0000:86:00.0# virsh list --all
   Id    Name                           State
  ----------------------------------------------------
   1     instance-00008c77              running
   2     instance-00008c7a              running
   3     instance-00008c7d              running
   
  root@compute-r6-h30:/sys/class/mdev_bus/0000:86:00.0# virsh vcpuinfo instance-00008c77
  VCPU:           0
  CPU:            3
  State:          running
  CPU time:       14.1s
  CPU Affinity:   yyyyyyy---------------------
   
  VCPU:           1
  CPU:            4
  State:          running
  CPU time:       0.9s
  CPU Affinity:   yyyyyyy---------------------
   
  VCPU:           2
  CPU:            0
  State:          running
  CPU time:       1.3s
  CPU Affinity:   yyyyyyy---------------------
   
  VCPU:           3
  CPU:            2
  State:          running
  CPU time:       2.0s
  CPU Affinity:   yyyyyyy---------------------
   
  VCPU:           4
  CPU:            4
  State:          running
  CPU time:       1.8s
  CPU Affinity:   yyyyyyy---------------------
   
  VCPU:           5
  CPU:            1
  State:          running
  CPU time:       1.1s
  CPU Affinity:   yyyyyyy---------------------
   
  VCPU:           6
  CPU:            2
  State:          running
  CPU time:       1.1s
  CPU Affinity:   yyyyyyy---------------------
   
   
  root@compute-r6-h30:/sys/class/mdev_bus/0000:86:00.0# virsh vcpuinfo instance-00008c7a
  VCPU:           0
  CPU:            4
  State:          running
  CPU time:       14.2s
  CPU Affinity:   yyyyyyy---------------------
   
  VCPU:           1
  CPU:            1
  State:          running
  CPU time:       0.9s
  CPU Affinity:   yyyyyyy---------------------
   
  VCPU:           2
  CPU:            4
  State:          running
  CPU time:       1.2s
  CPU Affinity:   yyyyyyy---------------------
   
  VCPU:           3
  CPU:            3
  State:          running
  CPU time:       0.8s
  CPU Affinity:   yyyyyyy---------------------
   
  VCPU:           4
  CPU:            4
  State:          running
  CPU time:       1.7s
  CPU Affinity:   yyyyyyy---------------------
   
  VCPU:           5
  CPU:            3
  State:          running
  CPU time:       3.6s
  CPU Affinity:   yyyyyyy---------------------
   
  VCPU:           6
  CPU:            2
  State:          running
  CPU time:       1.4s
  CPU Affinity:   yyyyyyy---------------------
   
  root@compute-r6-h30:/sys/class/mdev_bus/0000:86:00.0# virsh vcpuinfo instance-00008c7a
  VCPU:           0
  CPU:            6
  State:          running
  CPU time:       14.2s
  CPU Affinity:   yyyyyyy---------------------
   
  VCPU:           1
  CPU:            2
  State:          running
  CPU time:       0.9s
  CPU Affinity:   yyyyyyy---------------------
   
  VCPU:           2
  CPU:            0
  State:          running
  CPU time:       1.2s
  CPU Affinity:   yyyyyyy---------------------
   
  VCPU:           3
  CPU:            3
  State:          running
  CPU time:       0.8s
  CPU Affinity:   yyyyyyy---------------------
   
  VCPU:           4
  CPU:            6
  State:          running
  CPU time:       1.7s
  CPU Affinity:   yyyyyyy---------------------
   
  VCPU:           5
  CPU:            1
  State:          running
  CPU time:       3.6s
  CPU Affinity:   yyyyyyy---------------------
   
  VCPU:           6
  CPU:            4
  State:          running
  CPU time:       1.4s
  CPU Affinity:   yyyyyyy---------------------
   
   
   
  root@compute-r6-h30:/sys/class/mdev_bus/0000:86:00.0# virsh vcpuinfo instance-00008c7d
  VCPU:           0
  CPU:            4
  State:          running
  CPU time:       13.7s
  CPU Affinity:   yyyyyyy---------------------
   
  VCPU:           1
  CPU:            4
  State:          running
  CPU time:       1.4s
  CPU Affinity:   yyyyyyy---------------------
   
  VCPU:           2
  CPU:            6
  State:          running
  CPU time:       1.0s
  CPU Affinity:   yyyyyyy---------------------
   
  VCPU:           3
  CPU:            5
  State:          running
  CPU time:       0.5s
  CPU Affinity:   yyyyyyy---------------------
   
  VCPU:           4
  CPU:            0
  State:          running
  CPU time:       0.5s
  CPU Affinity:   yyyyyyy---------------------
   
  VCPU:           5
  CPU:            1
  State:          running
  CPU time:       0.3s
  CPU Affinity:   yyyyyyy---------------------
   
  VCPU:           6
  CPU:            2
  State:          running
  CPU time:       1.2s
  CPU Affinity:   yyyyyyy---------------------

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1842616/+subscriptions


Follow ups