100% does not always mean 100%
Some people mistakenly look at tools inside of a guest operating system (for example, the task manager) and when faced with 100% cpu utilization, they automatically believe that such virtual machine needs more vcpus. Not necessarily. You really need to look at what is taken place on the host and compare the results. Remember that the guest OS is not aware of what is actually happening on the host.
Notice that this case this virtual machine running Windows displays 100% cpu utilization.
However, notice that the esxi host does not have any of the logical cpus at 100% and that virtual machine is NOT using 100% of the actual lcpu (core). Notice the %MLMTD column and %RDY.
In this case, the reason is due to a cpu limit. Notice the capture below. This virtual machine has the limit set to 50% of the maximum number of cpu mhz. Yet, the guest OS is not aware of this.