Does one cpu (one thread of CPU) or 1GB mem of aws/azure/DO/GCP mean same consistently within a cloud provider?

Let me explain my question little better. Let me start with famous fictitious Scott Processor as example.

Config C19 - 2019 Scott Processor Base Frequency 2.7 GHz One Core One Thread
Config C21 - 2021 Scott Processor Base Frequency 4.0 GHz One Core One Thread and further improvements

So, a process/program using C2 is expected to run faster and quicker than on C1.

Now, say, any cloud provider in 2019 would have gone with the best processor at that time i.e C19. Great. And in 2021 they would have built new systems with C21. There is no guarantee that in 2021 they have retired or upgraded C19 with C21. Fine.
So now in 2021 the cloud provider is offering to customer 1CPU (and does not disclose to customers if it is a C19 or C21). It's just a CPU offering (AWS discloses if it's ARM or other type of processor but not the frequency of the CPU).

Now if I buy one CPU service from the Cloud Provider and say today I got C21 configuration. I ran a benchmark of my application (v1.0.0) and it took 10 minutes to do some job. Fine. Job Done and I terminated my service. After one month for some requirement I have to re-run the benchmark (with out any application changes - still v1.0.0). So I sign back with the same cloud provider and get one cpu. So is it possible that this time I might get C19 Configuration (think so) and if I re-run benchmarks again my application might take 13 minutes this time because I got C19 processor not C21 processor.

So Basically my point is - does 1CPU (or 1GB memory) offering by a cloud provider mean same performance during the present time (not concerned about future). No matter where and who sign's up. And is it consistent across various Cloud providers or mileage could vary across cloud provider for the same resource.

If it's consistent(between one cloud provider or all of them) - how does it work. How do they ensure that between various hardware configurations in there cloud, they can guarantee customers get same mileage for a given type of resource.

Comment: Is this the reason why provider like AWS have introduced generations across instance types - like M1, M2 and T1, T2 etc. So they can guarantee same performance for same configuration for the same generation and instance type.

1 answer

  • answered 2021-06-18 12:57 John Rotenstein

    Your comment in bold is correct: A given 'family' of instances uses a specific chipset.

    For AWS, these are listed on: Amazon EC2 Instance Types - Amazon Web Services

    In the AWS data center, there are racks of 'host computers'. Each host belongs to a particular family. For example M5 is "Up to 3.1 GHz Intel Xeon® Platinum 8175M processors with new Intel Advanced Vector Extension (AVX-512) instruction set".

    Each Host computer is then subdivided into multiple virtual computers. m5.24xlarge is the whole host computer with 96 virtual CPUs. Or, this can be divided into two m5.12xlarge virtual computers, each with 48 vCPUs. As long as you always choose the same instance type, then you will always receive the same virtual hardware (CPU, RAM).

    Specifications vary across instance families since they use different CPUs and possibly different generations of hardware. Specifications also vary across cloud providers, so you would not expect to find exactly the same hardware specification between, say, AWS and Azure. All the cloud providers build their own hardware and probably use different chipsets even if they still come from Intel, AMD and nVidia. AWS even makes its own Graviton ARM chip.

    When new Regions and Availability Zones are opened, they might not provide older generations of instance families. For example, the older M3 family is not available in newly-opened region.