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­cess­ing units also differ in terms of per­for­mance and when they are used.

Dif­fer­ence 1: Tech­no­log­i­cal basis

The crucial dif­fer­ence in the CPU vs vCPU com­par­i­son 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­vi­sors access the cores or threads of physical proces­sors that are available.

Dif­fer­ence 2: Per­for­mance

When it comes to per­for­mance, you’ll notice a distinct dif­fer­ence in the pro­cess­ing power ca­pa­bil­i­ties 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­ized variant is not as powerful as its hardware coun­ter­part. This is partly due to the fact that co­or­di­nat­ing with the physical CPU takes time. While the amount of time this takes is often neg­li­gi­ble, it does become no­tice­able when un­der­tak­ing par­tic­u­lar­ly demanding tasks.

In addition, the physical CPU with its sub­di­vid­ed cores and threads can process several in­struc­tions or processes directly and si­mul­ta­ne­ous­ly. The vCPU would have to be sup­ple­ment­ed 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­ing­ly complex for the CPU scheduler. The resulting wait times mean that the per­for­mance of the virtual CPU network cannot be used to its full potential.

Tip

More in­for­ma­tion about CPU uti­liza­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­a­ture and how you can overclock your CPU.

Dif­fer­ence 3: Area of ap­pli­ca­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­frig­er­a­tors and, of course, smart­phones and other mobile devices.

vCPUs assume the role of the central computing component in vir­tu­al­ized en­vi­ron­ments. Numerous usage scenarios can also be covered when it comes to virtual machines with their own operating system. Testing en­vi­ron­ments and server/ap­pli­ca­tion hosting such as database servers, cloud storage and virtual private servers (VPS) are par­tic­u­lar­ly 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­ized 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­ized en­vi­ron­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­bi­na­tion Ctrl + Shift + Esc to open the Task Manager.
  2. Click on the Per­for­mance menu.
  3. There you should find a list of in­for­ma­tion where you will find the values for cores, logical proces­sors (threads) and sockets (physical CPUs).
Image: Windows Task Manager: CPU information
Windows Task Manager: CPU in­for­ma­tion

If you are using a Linux operating system, you can find out the CPU in­for­ma­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­i­bil­i­ty with no minimum contract
  • 24/7 expert support included
Go to Main Menu