In April, 2014 Linode rolled out a major infrastructure upgrade for their VPSes. When I saw that their update included SSDs (among other things) on all new instances, my mind instantly went to this dog-slow Tomcat application I currently have running in an Amazon EC2 m1.medium
instance. I bought a shiny new Linode 2048 and ran some tests to see how well it performed compared to this particular EC2 instance.
tl;dr: the new Linode VPSes are blazing fast.
Tests
The benchmarks are synthetic, but give you an idea about how the systems perform for some common web server tasks. In particular, the application I have in mind is a heavy user of TLS (for https) and I/O (for database and files).
With that in mind, here are the three benchmarks I used:
- RSA:
openssl speed rsa
- AES:
openssl speed -elapsed -evp aes-128-gcm
- I/O:
dd if=/dev/zero of=1024MB bs=1M count=1000 oflag=direct
Both systems were using the the same Ubuntu 12.04.4 LTS distro + patch level.
Results: OpenSSL
RSA is important for SSL/TLS certificate verification operations (see X.509), while AES is important for message authentication and encryption (here AES is used for both, as opposed to a separate hash for message authentication).
Unsurprisingly, the new Linode instance was faster across the board:
RSA 2048* | RSA 4096 | aes-128-gcm (16 / 64 / 256**) | |
---|---|---|---|
Linode 2048 | 626.4 / 20606.9 |
88.6 / 5566.0 |
267718.57k / 647021.12k / 853076.48k |
EC2 m1.medium*** | 401.1 / 12855.7 |
55.6 / 3466.0 |
156823.09k / 291666.86k / 523188.48k |
*RSA speed is for sign / verify operations.
**AES operates on 16-byte blocks no matter the key length, but I’m not sure which byte size is more typical of TLS clients so I just included a few block sizes.
***To be fair, “current generation” EC2 instances are now also using Ivy Bridge-based Xeons and SSDs (like Linode’s), and apparently my m1.medium
is a legacy instance… which means at least the AES instructions would be faster on a new mx3.medium
.
Results: I/O
I/O is important for databases and certain applications which rely on accessing the file system. In particular, I stare at Java processes in htop
for several minutes when I restart my Tomcat application!
Unsurprisingly, the new Linode was much faster:
MB/sec | Time (seconds) | |
---|---|---|
Linode 2048 | 1331.2 |
0.817247 |
EC2 m1.medium | 41.4 |
25.3488 |
If I cared more I’d test more block sizes and maybe take an average of a series of runs, but meh. 🙂
Final words
It’s pretty obvious that the new Linodes are fast. The OpenSSL stuff isn’t particularly mind blowing (modest gains are due to new instances using Ivy Bridge-based Xeons), but disk and network performance of these systems is insane.
So if you’re already a Linode customer, upgrade your instances now! If not, maybe you want to look at Linode, or if you’re currently on EC2, maybe make sure your instances are using the “current generation” instances which also have SSD + Ivy Bridge Xeons. Otherwise, there’s also Digital Ocean, who started the whole “VPSes with SSDs” craze in the first place.