NUMA don't work for Windows guest VMs ?

gosha

Well-Known Member
Oct 20, 2014
302
26
58
Russia
Hi!

All my nodes support NUMA, for example:
Code:
# numactl --hardware
available: 2 nodes (0-1)
node 0 cpus: 0 1 2 3 4 5 12 13 14 15 16 17
node 0 size: 16009 MB
node 0 free: 143 MB
node 1 cpus: 6 7 8 9 10 11 18 19 20 21 22 23
node 1 size: 16122 MB
node 1 free: 84 MB
node distances:
node   0   1
  0:  10  20
  1:  20  10

I tried setup NUMА for all VMs.
After reboot nodes, I manually started all VMs and watched via numstat.
After start all linux VMs - NUMA worked:
numa_miss and numa_foreign had zero values.

But after start VMs with Windows guest these values have changed.
Example:
Code:
# numastat
                           node0           node1
numa_hit               155496666       110965077
numa_miss                 422506         7483014
numa_foreign             7483014          422506
interleave_hit             15426           16633
local_node             154937106       107410644
other_node                982066        11037447

Why? :(

proxmox-ve: 4.4-94 (running kernel: 4.4.76-1-pve)
pve-manager: 4.4-18 (running version: 4.4-18/ef2610e8)
pve-kernel-4.4.76-1-pve: 4.4.76-94
lvm2: 2.02.116-pve3
corosync-pve: 2.4.2-2~pve4+1
libqb0: 1.0.1-1
pve-cluster: 4.0-52
qemu-server: 4.0-112
pve-firmware: 1.1-11
libpve-common-perl: 4.0-96
libpve-access-control: 4.0-23
libpve-storage-perl: 4.0-76
pve-libspice-server1: 0.12.8-2
vncterm: 1.3-2
pve-docs: 4.4-4
pve-qemu-kvm: 2.7.1-4
pve-container: 1.0-101
pve-firewall: 2.0-33
pve-ha-manager: 1.0-41
ksm-control-daemon: 1.2-1
glusterfs-client: 3.5.2-2+deb8u3
lxc-pve: 2.0.7-4
lxcfs: 2.0.6-pve1
criu: 1.6.0-1
novnc-pve: 0.5-9
smartmontools: 6.5+svn4324-1~pve80
fence-agents-pve: 4.0.20-1


Best regards,
Gosha
 
Hi,

can you please send the Windows VM config.
 
Hi,

can you please send the Windows VM config.

cat /etc/pve/qemu-server/105.conf
balloon: 0
boot: c
bootdisk: scsi0
cores: 6
memory: 20480
name: ts1
net0: virtio=4E:5D:97:43:13:09,bridge=vmbr0
net1: virtio=C6:E3:D7:6A:B3:74,bridge=vmbr2
numa: 1
ostype: win7
scsi0: ceph_stor:vm-105-disk-1,cache=writethrough,size=50G
scsi1: ceph_stor:vm-105-disk-2,cache=writeback,size=200G
scsihw: virtio-scsi-single
smbios1: uuid=a2a5f12e-51b5-4431-babf-1b4c298c890b
sockets: 2
tablet: 0

This like all Windows-VMs configs.
 
...and I tried like this:

....
numa: 1
numa0: cpus=0;1;2;3;4;5,hostnodes=0,memory=10240,policy=bind
numa1: cpus=6;7;8;9;10;11,hostnodes=1,memory=10240,policy=bind

....

and NUMA don't work...

But for linux-VMs - works.
 
Hi!

Is there really no solution? :(

Can this be affected by non-use ballooning?

Best regards,
Gosha
 
Hi!
Can anyone confirm whether NUMA is working for Windows-guest VMs?
I want to understand: this is only my problem or general.

Best regards,
Gosha
 
Last edited:
Hi! I have AMD EPYC™ 7401P platform /4 NUMA nodes/. And NUMA seems to work pretty well. When Windows 2008r2 Guest (2 sockets*12cores) has started, "numastat" shows, that numa_miss and numa_foreign got zero values. Proxmox VE 5.1.