Is there any perceptible performance gain by allocating two processors
to a virtual machine configuration as opposed to simply having the host
running VMWare Workstation with dual processors?
(Presuming, of course, a host and guest OS that is capable of running
dual processors and the physical presence of dual processors in the hardware).
By allocating two virtual CPU's to a virtual machine can be a problem if you over commit CPU resources. So generally it is not recommend that you assign 2 virtual CPU's unless you have run your own benchmarks in your environment.
Ok, but given that there is plenty of cpu to go around on the Core 2 Duo, (gkrellm never shows more than 25% during my tests other than at VM boot), which will yield
better performance to tasks running in the VM? Two virtual CPUs or just ONE, letting
the underlying OS (linux) allocate them as needed?
I initially thought two virtual cpus might perform better, but from what you say Im suspecting I would be better off letting Linux take care of allocating processor resources. But it seems you may be recommending this for reasons other than performance issues, such as messing up the host-os processor allocation.
I am seeing a negative performance impact allocating two processors to the VMs. I thought Workstation 6 would alleviate this issue; but it did not. I cannot find the bottleneck; but as soon as I allocate 2 vCPU to any VM on Workstation all the VMs start lagging badly.
Personally I wouldn't recommend allocating multiple processors to a VM unless you specifically need to test or exercise a multithreaded application.
Basically the problem is that we don't have enough control over the host operating system scheduler, and it's very hard to get good performance particularly once you start overcommitting CPU (e.g. by running multiple VMs).
You can also run into issues when the host CPUs are in a NUMA configuration, have unsynchronized TSCs, etc. Note that there's lots of information in our knowledge base about how to deal with or mitigate these issues...
Note that even a single CPU VM benefits from running on a multi-core host, because we can parallelize virtual device activity (disk, network I/O, graphics, sound etc.) on one core while continuing to execute guest instructions on another.