Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is 1 vCPU on Google Compute Engine basically half of 1 physical CPU core?

Google's Machine types page states that:

For the n1 series of machine types, a virtual CPU is implemented as a single hardware hyper-thread on a 2.6 GHz Intel Xeon E5 (Sandy Bridge), 2.5 GHz Intel Xeon E5 v2 (Ivy Bridge)...etc

Assuming that a single physical CPU core with hyper-threading appears as two logical CPUs to an operating system, then if the n1-standard-2 machine that is described as 2 virtual CPUs and 7.5 GB of memory, then this essentially means 1 CPU core, right?

So if I'm trying to follow hardware recommendations for an InfluxDB instance that recommends 2 CPU cores, then I should aim for a Google Compute Engine machine that has 4vCPUs, correct?

like image 840
gunit Avatar asked Aug 30 '17 18:08

gunit


People also ask

How many cores does 1 vCPU have?

What is the equivalent of 1vCPU in physical CPU terms? A general estimation is that 1 vCPU = 1 Physical CPU Core.

Is vCPU and CPU are same?

A virtual CPU (vCPU) also known as a virtual processor, is a physical central processing unit (CPU) that is assigned to a virtual machine (VM). By default, virtual machines are allocated one vCPU each.

How many vCPU are there in 8 cores?

People may have misconception that 1 vCPU equals to 1 core. But there is no one to one relationship between vCPU and core in any virtualization software. Intel Xeon CPU E5-2650 v2 holds 8 Cores x8 = 64 vCPUs.

What is a Google vCPU?

For all processors available on Compute Engine, a single CPU core can run as multiple hardware multithreads through Simultaneous multithreading (SMT), which is known on Intel processors as Intel Hyper-Threading Technology. On Compute Engine, each hardware multithread is called a virtual CPU (vCPU).


2 Answers

Typically when software tells you how many cores they need they don't take hyper-threading into account. Remember, AMD didn't even have that (Hyper-Threading) until very recently. So 2 cores means 2 vCPUs. Yes, a single HT CPU core shows up as 2 CPUs to the OS, but does NOT quite perform as 2 truly independent CPU cores.

like image 174
pirhac Avatar answered Sep 22 '22 15:09

pirhac


That's correct, you should aim for a GCE machine-type that has 4vCPUs... When you're migrating from an on-premises world, you're used to physical cores which have hyperthreading. In GCP, these are called vCPUs or virtual CPUs. A vCPU is equivalent to one hyperthread core. Therefore, if you have a single-core hyperthreaded CPU on premises, that would essentially be two virtual CPUs to one physical core. So always keep that in mind as oftentimes people will immediately do a test. They'll say, "I have a four-cores physical machine and I'm going to run four cores in the cloud" and ask "why their performance isn't the same?!!!"

like image 29
ttfreeman Avatar answered Sep 24 '22 15:09

ttfreeman