GCP, AWS, and Azure ARM-based server performance comparison
apisix.apache.org
apisix.apache.org
The 41% discount thrown in at the end for Azure, without any explanation, was also jarring. Maybe there truly is promotional rate for Azure's ARM instance, but as another poster pointed out, it's likely reserved pricing, which is available for all the providers.
I have no doubt that AWS will also switch over services like DynamoDB, ELB and countless others which don't let you chose machine type to improve their cost basis.
But what the heck, this is not how wepages should work - click here to "unblur" the image? Why add such an extra step? To save bandwidth cost?
Re-uploaded just in case it doesn't work:
[1]: apisix-website-static.apiseven.com
This is probably meant as a fallback to look nicer on browsers which don't support lazy-loading, at the expense of breaking browsers which don't support JS or fail to execute it.
There are exceptions though in the very small "burstable" etc instances, like the micro etc.
EDIT: Seems I am wrong.
"Each vCPU is a thread of a CPU core, except for T2 instances and instances powered by AWS Graviton2 processors."
From: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance...
It also lacks basic insights into the results, e.g., when both AWS and GCP are using ARM's Neoverse V1 design, why those two servers are having such significant performance gap? Maybe it was just caused by some bad software configuration in the stack which can void all relevant results?
When there are up to 64 cores available, why only 2 cores were used? Surely other 62 cores are relevant, right?
Neoverse N1 is a much older and slower CPU, derived from Cortex-A76.
Neoverse V1 has a performance similar to Cortex-X1, but it also implements SVE (vector extension), which allows improved performance for floating-point applications.
The big ARM cores from the Cortex-X and Neoverse V series have more execution units, up to a double number, in comparison with the medium-size ARM cores from the Cortex-A and Neoverse N series.
For applications without much floating-point or large integer computations (where the Intel/AMD CPUs are the best), the Cortex-A/Neoverse N cores have a performance intermediate between a thread and a core of the Intel/AMD CPUs, so you need an 128-core Neoverse N CPU to beat a 64-core AMD CPU (which has 128 threads).
For the same kind of applications, the Neoverse V cores have a performance similar to (slightly older) Intel/AMD cores, so a 64-core Neoverse V CPU can match a (previous generation) 64-core AMD CPU.
But... the weird question is why are the Azure financials funny? The listed prices are about the same, but the "annual cost" for Azure seems to include a "41% off" discount that I can't find an explanation for? And then they use the latter in the calculation of price efficiency, which seems... what? This is the kind of thing Comcast does in its marketing. What is that discount and what's the justification for assuming that all users get it in perpetuity?
For the most part them have been great and the performance has been better for asp.net apps than Intel/AMD.
But I ended up with a stack overflow exception with System.Text.Json in my personal project that only occurs on arm but not others.
Still love the graviton instances.
I wish GitHub actions supported arm64 so I could write some unit tests to reproduce it and figure out where the issue is in the runtime.
Running it on Asahi might tell a different story, but it's almost completely irrelevant considering how painful it is provisioning Macs as opposed to Graviton instances.
Would be cool if Apple reintroduced Xserve. Extremely unlikely, though, considering that server margin are way to low for Apple to even consider and they really can't bet that their CPUs will be ahead of everyone else indefinitely.
Overall, compiled languages like Rust, C / C++ have very good support due to years of dev effort invested in LLVM/GCC to support arm64 will, C# will also become one of the better running platforms starting with .NET 7 (6 is ok but 7 improves perf dramatically and vectorizes many code paths). Can't say anything about Java though.
All in all, Graviton 2/3 on AWS is supposed to provide cheaper and denser compute which are its main selling points at the moment.
- cheaper
- generally comparable or better perf
Works for Lambda and EC2 and RDS.
The AMD/Intel server chips are used more intensively so they have greater scrutiny. Compensating for that, would it be possible to know which implementations are objectively better from a security standpoint?
It's not simple to maintain support for both, and the only way to be sure application works as expected is to run CI pipelines for both architectures, which can get quite expensive.
It runs in AMD64 machines because, for some reason, the Graviton instances are killed without warning by AWS.
So yeah, great performance, as long as you don't actually need it.
Still, the ASG group page doesn't show why are they killed.
And I put a very high price limit (5 USD per hour) which is over 50 times what it actually costs per hour.
Also: this setup works perfectly fine with Intel instances.
The 'high' price was set up in case the instances were being killed because I was outbid by other AWS users. But the spot price has never been that high.
The instances were killed anyway. So the reason is some technical glitch and not the price.
It's a CPU and RAM intensive process. Something in the VM governor is killing VM processes if they exceed some threshold, killing my instances.