April 30, 2021
In this post, we’ll compare the performance-price ratio of compute-optimized AWS instances built on: Intel, AMD, and Graviton2 (ARM64). Let’s start with the results. TL;DR Graviton2 based instances offer great performance-price benefits, except on some workloads …
The following table summarizes our findings about which instances had the best performance-price scores per scenario:
|Single Core||AMD (c5a)||Intel (m5zn)|
|All Cores||Graviton2 (c6g)||Intel (m5zn)|
The charts below show the performance-price ratio relative to Graviton2 instances, where a higher score is better. AWS offers a variety of ways to purchase these instances, this post focuses on performance-price ratios based on On-Demand and Spot prices.
Graviton2 (c6g) instances built on ARM64 architecture offer one physical core for each vCPU, while in Intel and AMD instances a vCPU is mapped to one hyperthread. AWS does not publish the clock speed on it’s Graviton2 instances, but our estimation is that they’re running at ~30% lower clock speeds than the Intel/AMD (c5/a) instances. Our findings are:
Given that Graviton2 instances have better performance-price when all cores are at 100% utilization, and worse performance-price at single-core utilization, it stands to reason that there is a breakeven point between the two. Our current estimation is that this breakeven point is ~70% utilization, meaning that benefits become apparent/relevant at CPU utilization rates above 70%.
One of the hardest things about benchmarking is determining representative workloads to test with. For this post, we’ve come up with two types of workload profiles that we’d want to stress the systems under:
In addition to workload type, we need to consider the pricing model used to purchase the compute instances. We focus on On-Demand and Spot pricing models. (Reserved instances generally offer a constant discount across all instance types, and since we’re interested in relative performance-price ratios, the results would be the same as On-Demand.)
We chose to use the following instance types for this test, and as of this writing, these were their respective prices in the US-WEST-2 (Oregon) region.
|m5zn.xlarge (2020)||Intel (4.5GHz||$0.33||$0.0670|
|c5a.xlarge (2020)||AMD (3.3GHz)||$0.15||$0.0644|
|c5.xlarge (2019)||Intel (3.6-3.9GHz)||$0.17||$0.0644|
|c6g.xlarge (2020)||ARM (Graviton 2)||$0.14||$0.0670|
We tested the following three scenarios:
All data is downloaded and sent to a LogStream SplunkTCP listener via the loopback interface. The test dataset is a ~6GB capture sent on a loop for 15 minutes. Next, we record the average throughput, as reported by LogStream over the past-15-minutes window.
If you care about all things performance, we’re hiring! Please check out our Jobs page.