Some vendors license their application per processor, also in a virtualized environment. So if your VM has 4 vCPU’s your vendor will want you to buy a 4 processor license for the application. But you can avoid this by telling the VM that it has cores instead of processors. In others words, instead of having 4 processors you would have 1 processor with 4 cores:
- 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 8) 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.
Keep in mind that this feature is currently unsupported!