The main dif­fer­ence between CPUs and vCPUs is that CPUs are physical in nature, whereas vCPUs are a virtual variant that is based on software. The two types of central pro­cessing units also differ in terms of per­form­ance and when they are used.

Dif­fer­ence 1: Tech­no­lo­gic­al basis

The crucial dif­fer­ence in the CPU vs. vCPU com­par­is­on is a technical one. A CPU is a piece of computer hardware that is commonly referred to as a ‘processor’. Modern CPUs typically have multiple cores, which they can dis­trib­ute processes to that need to be carried out.

A vCPU, on the other hand, is a software-based variant of a computer control unit. It does not exist in physical form but is based on a physical CPU. Depending on re­quire­ments, several vCPUs can be derived from a classic physical CPU. Although it is not possible for a vCPU to be based on multiple physical CPUs, the vCPU can use multiple cores of a physical CPU.

To create and assign vCPUs to a virtual machine (VM), hy­per­visors access the cores or threads of physical pro­cessors that are available.

Dif­fer­ence 2: Per­form­ance

When it comes to per­form­ance, you’ll notice a distinct dif­fer­ence in the pro­cessing power cap­ab­il­it­ies of vCPUs and CPUs. This is due to the fact that vCPUs are, strictly speaking, software-based subunits of a CPU. If you compare a single vCPU and a single CPU with the same clock speed (gigahertz), the vir­tu­al­ised variant is not as powerful as its hardware coun­ter­part. This is partly due to the fact that co­ordin­at­ing with the physical CPU takes time. While the amount of time this takes is often neg­li­gible, it does become no­tice­able when un­der­tak­ing par­tic­u­larly demanding tasks.

In addition, the physical CPU with its sub­divided cores and threads can process several in­struc­tions or processes directly and sim­ul­tan­eously. The vCPU would have to be sup­ple­men­ted by further vCPUs in order to do this, which can end up being quite prob­lem­at­ic. With an in­creas­ing number of vCPUs, reg­u­lat­ing the time execution of various processes becomes in­creas­ingly complex for the CPU scheduler. The resulting wait times mean that the per­form­ance of the virtual CPU network cannot be used to its full potential.

Tip

More in­form­a­tion about CPU util­isa­tion can be found in our separate article on the topic. In other guides, we also explain how you can display the CPU tem­per­at­ure and how you can overclock your CPU.

Dif­fer­ence 3: Area of ap­plic­a­tion

CPUs are the heart of the classic computer. Without suf­fi­cient computing power, PCs would not be able to perform a wide range of tasks such as gaming, streaming, image and video editing and cal­cu­la­tions. Physical CPUs are also used in many other everyday devices such as coffee machines, dish­wash­ers, re­fri­ger­at­ors and, of course, smart­phones and other mobile devices.

vCPUs assume the role of the central computing component in vir­tu­al­ised en­vir­on­ments. Numerous usage scenarios can also be covered when it comes to virtual machines with their own operating system. Testing en­vir­on­ments and server/ap­plic­a­tion hosting such as database servers, cloud storage and virtual private servers (VPS) are par­tic­u­larly popular. Here, it becomes quite clear that it is not so much about CPU vs. vCPU but more about how physical and vir­tu­al­ised computing power can interact with each other. The un­der­ly­ing physical CPU can be used as the basis for several vir­tu­al­ised en­vir­on­ments that run at the same time for several users. This is what makes vCPUs so in­ter­est­ing for providers and those using cloud services.

How are CPUs converted into vCPUs?

If you want to use the physical CPU of your computer to provide vCPUs for one or more virtual machines, the following formula can be used to roughly calculate the number of vCPUs that can be provided:

(Threads x Cores) x Physical CPU Number = Number of vCPUs

For example, if you have installed a CPU with four cores and eight threads, you can provide up to 32 vCPUs:

(8 Threads x 4 Cores) x 1 = 32 vCPUs

You can find out the number of cores and threads your CPU has at any time in just a few steps. If you are working on a Windows PC, you can take the following steps:

  1. Use the key com­bin­a­tion Ctrl + Shift + Esc to open the Task Manager.
  2. Click on the Per­form­ance menu.
  3. There you should find a list of in­form­a­tion where you will find the values for cores, logical pro­cessors (threads) and sockets (physical CPUs).
Image: Windows Task Manager: CPU information
Windows Task Manager: CPU in­form­a­tion

If you are using a Linux operating system, you can find out the CPU in­form­a­tion via the terminal and by using the following command:

lscpu
bash
Compute Engine
The ideal IaaS for your workload
  • Cost-effective vCPUs and powerful dedicated cores
  • Flex­ib­il­ity with no minimum contract
  • 24/7 expert support included
Go to Main Menu