How to Disable/Enable Numa for Virtual Machine (XEN based)

How to check if NUMA is enabled

To determine if the server is a NUMA-based system with NUMA enabled, run the following command as root on the database server:

# numactl -H | grep available
available: 8 nodes (0-7)

– or –

# numactl -H | grep available
available: 2 nodes (0-1)

If the number of available nodes is “2 nodes (0-1)” or “8 nodes (0-7)” then NUMA is enabled. If the number of available nodes is “1 nodes (0)” then NUMA is not enabled.

How to disable Numa on Virtual Machine

vNUMA removes the transparency between the VM and the OS and presents the NUMA architecture directly to the VM’s operating system. It worth mentioning that vNUMA also known as wide NUMA in the industry. This needed downtime.

# vi /etc/xen/xend-config.sxp
# Enable or disable HVM guests seeing an vNUMA topology by default.
(vnuma 0)

I have disabled vNUMA ( indicated by value 0), if the value is 1 that means enabled (space is there for (vnuma 0)).

Restart the xend service after the changes.

# /etc/init.d/xend restart

We need to also restart the virtual machines for the changes to take effect:

# xm stop 0004fb0000060000aa3c75119ef2e544
# xm start 0004fb0000060000aa3c75119ef2e544

Before activity

# numactl --hardware
available: 2 nodes (0-1)             ===>  If the number of available nodes is "2 nodes (0-1)" or "8 nodes (0-7)" then NUMA is enabled. If the number of available nodes is "1 nodes (0)" then NUMA is not enabled.
node 0 cpus: 0
node 0 size: 9997 MB
node 0 free: 9879 MB
node 1 cpus: 1
node 1 size: 10078 MB
node 1 free: 10019 MB
node distances:
node 0 1
0: 10 21
1: 21 10

After reboot

# numactl --hardware
available: 1 nodes (0)
node 0 cpus: 0 1
node 0 size: 20076 MB
node 0 free: 19897 MB
node distances:
node 0
0: 10
Related Post