Rob's summary doesn't really agree with the thread he linked to as support.
The poster in the thread he linked is running a system with a total of 2 available cores.
A VM with 2 vCPUs assigned needs to wait for both of those cores to be free before it's granted CPU time.
Naturally, the hypervisor/host system gets first dibs when it comes to CPU resources.
Long story short, the VM will rarely end up being allowed access to the CPU in this situation.
So if this is the only VM you're planning to run on this system, assigning 2 to 3 cores would probably work out fine for you. Assigning 4 would most likely cripple the VM.
If you plan to run other VMs concurrently I'd recommend 2 vCPUs. It seems to be a sweet spot for most workloads and systems with 3+ available cores (up to any number of cores).
The exact amount needed to do the job you're trying to do in a timely manner. Or as near to that as possible.
Or if you want to look at it another way, how many cores would be in a dedicated piece of hardware you'd buy to do this task non-virtualised?
In terms of how networking, memory, cpu, disk requirements work for an application, nothing magical happens (or doesn't happen) just because the platform you run it on is virtualised.
Rob's summary doesn't really agree with the thread he linked to as support.
So if this is the only VM you're planning to run on this system, assigning 2 to 3 cores would probably work out fine for you. Assigning 4 would most likely cripple the VM.
If you plan to run other VMs concurrently I'd recommend 2 vCPUs. It seems to be a sweet spot for most workloads and systems with 3+ available cores (up to any number of cores).
The exact amount needed to do the job you're trying to do in a timely manner. Or as near to that as possible.
Or if you want to look at it another way, how many cores would be in a dedicated piece of hardware you'd buy to do this task non-virtualised?
In terms of how networking, memory, cpu, disk requirements work for an application, nothing magical happens (or doesn't happen) just because the platform you run it on is virtualised.