Affinitizing VM (Out of Memory)
- Does a utilily exist to show which processes occupy specific NUMA nodes, the issue is related to restarting a VM which has been assigned a specific node which no longer has enough memory to start VM.
The workaround would be to shutdown HOST to clear memory from all nodes, and start VM right after re-boot, and is the only time enough memory will be available to start VM for sure.
This is a problem only an after VM has been turned off for an extended period of time, but will not permit restarting VM, it sure would be nice to be able to move or stop thoose processes consuming this assigned memory; without restart the entire HOST machine.
Any workarounds?
Answers
Hi,
By default, all process will be set to use all processors.
You may have to use WinDebug to find out which process occupies memory on specific NUMA node. After that, you can use Task Manager or other tools to set its affinity. For your reference:
Help! My Application only runs on a Single Processor system!
http://blogs.technet.com/askperf/archive/2009/02/03/help-my-application-only-runs-on-a-single-processor-system.aspxIf you would like, it’s suggested to contact Microsoft Customer Support Services (CSS) so that a dedicated Support Professional can assist with this request. Thank you for your understanding.
To obtain the phone numbers for specific technology request please take a look at the web site listed below.
http://support.microsoft.com/default.aspx?scid=fh;EN-US;PHONENUMBERSIf you are outside the US please see http://support.microsoft.com for regional support phone numbers.
Thanks.
This posting is provided "AS IS" with no warranties, and confers no rights.- Marked As Answer byMervyn ZhangMSFT, ModeratorMonday, February 15, 2010 7:16 AM
All Replies
- I believe there are certain APIs to get this information as well with a small program. One tool can be used with some manual effort for this puspose is procexp tool from Windows Sysinternals. You can see the affinitization of processes by right clicking on the process and choosing "Set Affinity".
I am curious of your scenario here. Why do you need to affinitize your VM on a given CPU. If you want to make sure your VM gets certain amount of CPU scheduling, correct way of doing this is to set reservation on your virtual CPUs.
Hope this helps,
Serdar Sutay [MSFT] Program Manager, Hyper-V This posting is provided "AS IS" with no warranties, and confers no rights. - The Hosting machine is an 8-way (Quad), so 32-cores are avaiable, but each CPU (4-cores) has local access to 16GB of memory, by setting the VM to specific node it is easier to manage memory so that no Remote Physical Pages are used.
I am also trying to not over-subscribe core usage for certain VMs while allowing multiple VMs to run on single CPU; but unsure if it is even possible to assign two VMs (/w 4 logical CPUs) to the same Node and over-subscribe the CPU's cores to run multiple VMs? If this is possible then unutilized VMs can share a single CPU cores.
Thanks for the reply. - From all appearances it is possible to over-subscribe the Logical CPUs to cores on a specific CPU. By setting 4 VMs to the same Affinity (without exceeding memory on that node) using 8 logical CPUs, this setting is a great way to control resources. If this is not done, then these VMs will be scathered and may result in using memory pages outside the NUMA node. It also important to note these VMs seldom ever exceed 10% CPU load.
Hoping this is true, and not a virtual illusion. Hi,
By default, all process will be set to use all processors.
You may have to use WinDebug to find out which process occupies memory on specific NUMA node. After that, you can use Task Manager or other tools to set its affinity. For your reference:
Help! My Application only runs on a Single Processor system!
http://blogs.technet.com/askperf/archive/2009/02/03/help-my-application-only-runs-on-a-single-processor-system.aspxIf you would like, it’s suggested to contact Microsoft Customer Support Services (CSS) so that a dedicated Support Professional can assist with this request. Thank you for your understanding.
To obtain the phone numbers for specific technology request please take a look at the web site listed below.
http://support.microsoft.com/default.aspx?scid=fh;EN-US;PHONENUMBERSIf you are outside the US please see http://support.microsoft.com for regional support phone numbers.
Thanks.
This posting is provided "AS IS" with no warranties, and confers no rights.- Marked As Answer byMervyn ZhangMSFT, ModeratorMonday, February 15, 2010 7:16 AM