A vCPU is a thread of a physical processor made available to your virtual machine. The word is the same across every provider; what you get for it is not, and the difference only shows when you are busy.
The three kinds
- Shared. The thread is shared with other customers. Cheap, and fine for a site that is mostly idle - but when a neighbour is busy, you are slower, and nothing on your side explains why.
- Burstable. A guaranteed baseline plus credits for going above it. Excellent for traffic that spikes; if the spike lasts, the credits run out and you drop to the baseline, which is often much lower than you assumed.
- Dedicated. The thread is yours. Costs more and is the only one where the number you bought is the number you always have.
How many you need
Requests per second matters less than what each request does. A cached page costs almost nothing; a search across a large catalogue costs a lot. Measure your own worst page rather than reading a table.
uptime\nnproc\n# load sustained near or above nproc means you are out of CPU
When more vCPU is NOT the answer
If load is high because of disk wait - high %wa in top - adding CPU changes nothing. The processes are waiting, not computing, and the fix is a query, an index or faster storage.
Steal time tells you about the neighbours
top -b -n 1 | head -3\n# look at %st
Steal time is CPU your machine wanted and the host gave to someone else. Consistently above a few percent on a shared plan is the noisy-neighbour effect made visible, and it is an argument for dedicated cores rather than for more shared ones.
EGPHP plans state which kind they are. If a plan does not say, it is shared - and for a site that must not slow down at its busiest hour, that is the wrong product however good the price is.