16 Nisan 2012 Pazartesi

Virtual NUMA

Using Virtual NUMA
vSphere 5.0 introduces support for exposing virtual NUMA topology to guest operating systems, which can improve performance by facilitating guest operating system and application NUMA optimizations.
Virtual NUMA topology is available to hardware version 8 virtual machines and is enabled by default when the number of virtual CPUs is greater than eight. You can also manually influence virtual NUMA topology using advanced configuration options.
You can affect the virtual NUMA topology with two settings in the vSphere Client: number of virtual sockets and number of cores per socket for a virtual machine. If the number of cores per socket (cpuid.coresPerSocket) is greater than one, and the number of virtual cores in the virtual machine is greater than 8, the virtual NUMA node size matches the virtual socket size. If the number of cores per socket is less than or equal to one, virtual NUMA nodes are created to match the topology of the first physical host where the virtual machine is powered on.
When the number of virtual CPUs and the amount of memory used grow proportionately, you can use the default values. For virtual machines that consume a disproportionally large amount of memory, you can override the default values in one of the following ways:
Increase the number of virtual CPUs, even if this number of virtual CPUs is not used. See Change the Number of Virtual CPUs.
Use advanced options to control virtual NUMA topology and its mapping over physical NUMA topology. See Virtual NUMA Controls.
Change the Number of Virtual CPUs
You can configure a virtual machine that runs on an ESXi host to have up to 32 virtual CPUs.
Important
When you configure your virtual machine for multicore virtual CPU settings, you must ensure that your configuration complies with the requirements of the guest operating system EULA.
1
In the vSphere Client, right-click the virtual machine in the inventory and select Edit Settings.
2
Click the Hardware tab and select CPUs.
3
Select a value from the Number of virtual sockets drop-down menu.
4
Select a value from the Number of cores per socket drop-down menu.
The resulting total number of cores is a number equal to or less than the number of logical CPUs on the host.
5
Click OK.


Change the Number of Virtual CPUs
 
You can configure a virtual machine that runs on an ESXi host to have up to 32 virtual CPUs.
Important
When you configure your virtual machine for multicore virtual CPU settings, you must ensure that your configuration complies with the requirements of the guest operating system EULA.
1
In the vSphere Client, right-click the virtual machine in the inventory and select Edit Settings.
2
Click the Hardware tab and select CPUs.
3
Select a value from the Number of virtual sockets drop-down menu.
4
Select a value from the Number of cores per socket drop-down menu.
The resulting total number of cores is a number equal to or less than the number of logical CPUs on the host.
5
Click OK.


Virtual NUMA Controls
 
For virtual machines with disproportionately large memory consumption, you can use advanced options to manually override the default virtual CPU settings.
You can add these advanced options to the virtual machine configuration file.
Advanced Options for Virtual NUMA Controls
Option
Description
Default Value
cpuid.coresPerSocket
Determines the number of virtual cores per virtual CPU socket. If the value is greater than 1, also determines the size of virtual NUMA nodes if a virtual machine has a virtual NUMA topology. You can set this option if you know the exact virtual NUMA topology for each physical host.
1
numa.vcpu.maxPerVirtualNode
If cpuid.coresPerSocket is too restrictive as a power of two, you can set numa.vcpu.maxPerVirtualNode directly. In this case, do not set cpuid.coresPerSocket.
8
numa.autosize
When you set this option, the virtual NUMA topology has the same number of virtual CPUs per virtual node as there are cores on each physical node.
FALSE
numa.autosize.once
When you create a virtual machine template with these settings, the settings are guaranteed to remain the same every time you subsequently power on the virtual machine. The virtual NUMA topology will be reevaluated if the configured number of virtual CPUs on the virtual machine is modified.
TRUE
numa.vcpu.min
Minimum number of virtual CPUs in a virtual machine that are required in order to generate a virtual NUMA topology.
9
Note
When you set numa.autosize to TRUE, and if the configuration is set up manually or with a script, some guests might not be able to handle dynamic changes.
For example, a Linux application configured with the numactl system utility is set up and tested on one physical host with four cores per node. The host requires two NUMA nodes for a virtual machine with eight virtual CPUs. If the same virtual machine is run on a system with eight cores per node, which might occur during a vMotion operation, and numa.autosize is set to TRUE, only one virtual NUMA node will be created (rather than two virtual NUMA nodes). When numactl references the second virtual NUMA node, the operation will fail.
To avoid this, scripts should be intelligent enough to first query numactl --hardware. Otherwise, you must set the NUMA topology explicitly or allow the default numa.autosize.once setting to take effect.

Hiç yorum yok:

Yorum Gönder