I was working on a customers site not long ago and had to set a static MAC address for a Virtual Machine so when it moved between hosts via a manual or DRS initiated migration it would not alter the MAC and in turn break the application that was hardcoded to a particular MAC.
I remember thinking at the time if there was a way you could tell a VM to ignore or mask additional CPU’s to aviod licensing contraints…. as this particular application was bound to MAC and also number of CPU’s.
A month or so later im browsing around and I found Duncan from yellow-bricks posted this neat little trick.
- Power off the VM
- Right click on the VM and select “Edit Settings…”
- Select the “Options” tab
- Click on “General” (in the “Advanced” options section)
- Click “Configuration Parameters…” (in the pane on the right)
- Click “Add Row”
- Enter “cpuid.coresPerSocket” in the “Name” column
- Enter a value (try 2, 4, or in the “Value” column
- Click “OK”
- Power on the VM
The VM will now appear to the OS as having multi-core CPUs with the number of cores per CPU given by the value that you selected. For example, if you create an 8 VCPU VM and set “cpuid.coresPerSocket = 2″ it will be recognized as 4 dual-core CPU’s by the OS while it’s actually utilizing 8 physical cores.