Nodeinfo returns wrong NUMA topology / bad virtualization performance
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
libvirt (Ubuntu) |
Incomplete
|
Medium
|
Stefan Bader |
Bug Description
1)
Description: Ubuntu 14.04.2 LTS
Release: 14.0
2)
libvirt-bin:
Installed: 1.2.2-0ubuntu13
Candidate: 1.2.2-0ubuntu13
Version table:
*** 1.2.2-0ubuntu13
500 http://
100 /var/lib/
1.
500 http://
1.
500 http://
4+5)
"virsh nodeinfo" shows wrong NUMA topology:
:~$ virsh nodeinfo
CPU model: x86_64
CPU(s): 64
CPU frequency: 1400 MHz
CPU socket(s): 1
Core(s) per socket: 64
Thread(s) per core: 1
NUMA cell(s): 1
Memory size: 528376144 KiB
but it should be "NUMA cell(s): 8".
I'm running a 3.13.0-48-generic equipped with _four_ physical AMD Opteron 6282 SE to a Supermicro H8QG6-F. libvirt-bin version: 1.2.2-0ubuntu13
NUMA ctl gives me eight cells:
:~$ numactl -H
available: 8 nodes (0-7)
node 0 cpus: 0 1 2 3 4 5 6 7
node 0 size: 64431 MB
node 0 free: 58505 MB
node 1 cpus: 8 9 10 11 12 13 14 15
node 1 size: 64510 MB
node 1 free: 45068 MB
node 2 cpus: 16 17 18 19 20 21 22 23
node 2 size: 64510 MB
node 2 free: 62910 MB
node 3 cpus: 24 25 26 27 28 29 30 31
node 3 size: 64510 MB
node 3 free: 20460 MB
node 4 cpus: 32 33 34 35 36 37 38 39
node 4 size: 64510 MB
node 4 free: 63512 MB
node 5 cpus: 40 41 42 43 44 45 46 47
node 5 size: 64510 MB
node 5 free: 52723 MB
node 6 cpus: 48 49 50 51 52 53 54 55
node 6 size: 64510 MB
node 6 free: 64084 MB
node 7 cpus: 56 57 58 59 60 61 62 63
node 7 size: 64494 MB
node 7 free: 62013 MB
node distances:
node 0 1 2 3 4 5 6 7
0: 10 16 16 22 16 22 16 22
1: 16 10 22 16 22 16 22 16
2: 16 22 10 16 16 22 16 22
3: 22 16 16 10 22 16 22 16
4: 16 22 16 22 10 16 16 22
5: 22 16 22 16 16 10 22 16
6: 16 22 16 22 16 22 10 16
7: 22 16 22 16 22 16 16 10
As well as lstopo is resulting in eight NUMA cells (see attached picture).
But "virsh nodeinfo" shows only one NUMA cell, one socket and 64 CPUs (single threaded). Performance of virtualized machines on this host is very bad.
I think it has something to do with the identical core_ids per physical socket and module.
:~$ cat /proc/cpuinfo | egrep "processor|physical id|siblings|core id|cpu
see appendix
Many Thanks!
ProblemType: Bug
DistroRelease: Ubuntu 14.04
Package: libvirt-bin 1.2.2-0ubuntu13
ProcVersionSign
Uname: Linux 3.13.0-48-generic x86_64
ApportVersion: 2.14.1-0ubuntu3.10
Architecture: amd64
Date: Mon Apr 20 13:04:31 2015
InstallationDate: Installed on 2012-12-07 (864 days ago)
InstallationMedia: Ubuntu-Server 12.04.1 LTS "Precise Pangolin" - Release amd64 (20120817.3)
SourcePackage: libvirt
description: | updated |
description: | updated |
Supplement: It seems that "virsh capabilities" get it right (See attachment). Eight NUMA cells...
Virtualization machine config with virt-manager 0.9.5-1ubuntu3
Crazy. Thank you for your guidance.
Note: capabilities detects a Opteron_G4 socket - but on that board is a Opteron_G34.