What are Amazon AWS vCPUs?

Sam Rueby Amazon Web Services 1 Comment

I was really surprised to find this. I was trying to get an idea of the difference in performance between my current m1.large instances and the new m3.large instances. First, I used to CPU-Z to see what it detected.

CPU-Z results for an Amazon EC2 m1.large instance

CPU-Z results for an Amazon EC2 m1.large instance

Okay we’ve got:

  • An Xeon E5-2650 running at a detected 1.8 Ghz
  • 2 CPU cores with 1 thread each.

Next I spun-up an m3.large and run CPU-Z.

CPU-Z results for an Amazon EC2 m3.large

CPU-Z results for an Amazon EC2 m3.large

Here we have:

  • Xeon E5-2670 v2 running at a detected 2.5 Ghz
  • 1 CPU core with 2 threads.

One core with two threads?

That’s not what I was expecting. Now I wanted to know what Amazon was saying they’re providing.

Amazon Previous Generation Details

Amazon Previous Generation Details showing m1.large instances having 2 vCPUs

Amazon Instance Types Matrix

Amazon Instance Types Matrix showing m3.large having 2 vCPUs

As you can see in the two above screen shots, both m1.large and m3.large have two vCPUs. A vCPU to me means a processor core. So what gives? This must mean that I’m just making an incorrect assumption and should find the actual definition. Well, I searched all over aws.amazon.com and “vCPU” is subtly redefined depending on the instance type (which I find misleading).

Each vCPU is a hyperthraded of an Intel Xeon core for M3, C3, R3, HS1, G2, and I2. M3 instances may also launch as an Intel xeon E5-2670 (Sandy Bridge) Processor running at 2.6GHz

Link: https://aws.amazon.com/ec2/instance-types/ . It turns out that a vCPU does not guarantee to you anything more than a single CPU thread.

Here are two other blog posts who discovered the same thing and went into a little more depth:

  • billegge