16-Way AMD EPYC Cloud Benchmark Comparison: Amazon EC2 vs. SkySilk vs. Packet
With last week Amazon Web Services rolling out AMD EPYC cloud instances to EC2, I figured it would be an interesting time for a fresh benchmark look at how the AMD Linux cloud performance compares from some of the popular cloud providers. For this article are sixteen different instances benchmarked while looking at the raw performance as well as the value on each instance type relative to the benchmark performance and time consumed for the on-demand spot instancing. EPYC instances were tested from Amazon EC2, Packet.com, and SkySilk.
The Amazon EC2 EPYC instances launched last week range from the m5a.large at two vCPUs and 8GB of RAM up to the m5a.24xlarge at 96 vCPUs and 384 GB of memory. For this article we tested the m5a.large, m5a.xlarge, m5a.2xlarge, and m5a.12xlarge instances. Unfortunately we have yet to have access to the m5a.24xlarge instance type so we were unable to test that highest-end tier that is restricted. All of the AMD EPYC instances on EC2 are backed by EPYC 7571 processors at 2.5GHz. EC2 on AMD hardware makes use of the Kernel-based Virtual Machine (KVM). It is interesting to note that "generic" Retpolines are used for their Spectre V2 mitigation rather than the tuned "AMD" Retpolines, at least that was the case with all of our testing and using the Ubuntu 18.04 images.
SkySilk launched back in September with AMD EPYC and Intel Broadwell cloud options. The current EPYC instances range from a 1 vCPU "Pico" option with 512MB RAM up through their "ultimate" option with 40 vCPUs and 320GB of RAM. All of the SkySilk EPYC cloud instance types were available and tested from the small 2 vCPU option (similar to EC2 m5a.large) through the 40 vCPU highest-end option. Thanks to SkySilk for providing us with free access to their cloud for benchmarking purposes. SkySilk's EPYC instances are currently using AMD's highest-end EPYC 7601 processors that have the 2.2GHz base clock frequency and 2.7GHz all-core boost clock speed. SkySilk's cloud makes use of LXC Linux containers instead of KVM/Xen. The SkySilk EPYC hardware had full AMD Retpolines with IBPB and also Spectre V4 mitigation with SSB disabled.
The third AMD EPYC "cloud" contender is Packet.com. This happens to be our first time benchmarking Packet's options. With Packet it's actually bare metal access but at cloud pricing. Currently their only available EPYC instance is the c2.medium.x86 that provides an AMD EPYC 7401p at 24 cores / 48 threads with 2.2GHz clock speed, 64GB of RAM, and 960 GB of storage... All for $1.00 USD per hour! The Packet $1 per hour plan also provides 20 Gbps bonded networking and the storage is made up of four SSDs. The pricing was actually a shock and after creating a new account, was actually as good as it seemed and the server had full AMD Retpolines with IBPB.
The Amazon EC2 / SkySilk / Packet benchmarking was all done using their default Ubuntu 18.04 LTS server images with the Linux 4.15 kernel, EXT4 file-system, and GCC 7.3.0 compiler.
All of this benchmarking of these various clouds were carried out using the Phoronix Test Suite. This included the raw benchmarking in a fully-automated and standardized manner as well as monitoring the time for each test and calculating the performance-per-dollar of each cloud. Recent versions of the Phoronix Test Suite support a COST_PERF_PER_HOUR= environment variable where when entering the on-demand/spot hourly pricing can then generate these complementary metrics in a very easy to interpret manner.
Thanks to the Phoronix Test Suite being open-source and publicly available, if you wish to see how your own cloud(s) or bare metal Linux server performance compares to the results about to be shown in this article, simply install the Phoronix Test Suite and run phoronix-test-suite benchmark 1811127-SK-AMDEPYCCL13 for your own fully-automated, side-by-side benchmark comparison.