VMware Communities
saurabhshah
Contributor
Contributor

Tie the VM to a cpu?

Hi,

I am running two VMs on top of Workstation 6.5 and making them communicate with each other using the VMCI interface.

Is there a way to make the two VMs run on different CPUs?(i.e tie them to different CPUs) The system that runs the workstation is multi-core.

I need to collect some figures for inter-VM latency when

i) two VMs are running on same CPU(so they will context switch),

ii) when the two VMs run on different CPUs(so there is no context switch).

I tried to look for some setting on Workstation but couldnt find any. There was a way of specifying "number of CPU's', but I need to tie the VM to a specific CPU. Any help with this regard would be greatly appreciated.

Thanks

Reply
0 Kudos
5 Replies
jbruelasdgo
Virtuoso
Virtuoso

I do not think you can achieve that with VMware Workstation (or another hosted virtualization product)

you could achieve it with VMware ESX/ESXi (bar-metal hypervisor)

regards

Jose Ruelas

Jose B Ruelas http://aservir.wordpress.com
Reply
0 Kudos
rbphilip
Contributor
Contributor

You don't mention your host OS. If you are using Windows, once you have your VM guests running, go out to the host and hit CTRLALTDELETE to get into task manager. Got to "processes", and find your vmware-vmx.exe machines. Right click and then go to "set affinity". Windows will constrain the VM to running on the physical CPU(s) you pick.

Note that it isn't easy to tell which VM is which, so you might start one of them, set affinity, start the next one, set affinity, etc....

AFIK there is no way to do this permanently for a particular VM. But if you're like me and your VMs run for days/weeks it's not too annoying.

Good luck.

Reply
0 Kudos
saurabhshah
Contributor
Contributor

My host OS is a Debian (GNU/Linux- 2.6.26-1-amd64) and both the VMs are also linux.

I searched a bit more on this and found that in *.vmx file I can mention these settings

processor0.use = TRUE/FALSE

processor1.use = TRUE/FALSE

So, if I make p0.use=true & p1.use=false, does that mean that the VM will be bound to processor 0?

Reply
0 Kudos
ksc
VMware Employee
VMware Employee

Yes, processorN.use = TRUE/FALSE will work as well.

The config file settings are essentially the same affinity mask you could get by right-clicking in Process Manager and choosing Set Affinity.

Reply
0 Kudos
jbruelasdgo
Virtuoso
Virtuoso

guau!!!

I did not know this setting!! as always, you can learn something new everyday!!

thanks

Jose

Jose B Ruelas http://aservir.wordpress.com
Reply
0 Kudos