If you want to find out if UpCloud really lives up to its huge promises of industry-leading IOPS performance, read on. The results may surprise you.
How to Choose a Cloud Provider
In an increasingly commoditized cloud computing landscape, selecting an infrastructure-as-a-service provider for your applications & workloads should nonetheless be a well-contemplated decision. For larger enterprises, the decision to go with AWS, Azure, or GCP is often driven by loyalty to these particular brands based on existing commercial relationships. Second to that as a consideration is which vendor’s tooling that the development and ops teams prefer, particularly when it comes to leveraging PaaS offerings.
If you’re looking at DigitalOcean, Linode, or UpCloud, you’re more likely to be a startup, or small to medium enterprise concerned about stretching your infrastructure budget further. You appreciate the simplicity of one-click deployments, with relatively simple, virtual networking needs. Although these “challenger” providers are increasingly adding managed services to their product portfolio, with DigitalOcean having launched a Managed Database and Managed Kubernetes service this year alone, they’re typically favored by developers who simply need bare VMs at an unbeatable cost.
We find it particularly interesting to compare the performance of DigitalOcean vs. Linode vs. UpCloud, as they stand neck-to-neck with each other on pricing for the same number of CPU cores and memory. The included storage and bandwidth is also identical across the chart, with the exception of Linode bumping their 16GB instance up to 8TB bandwidth (vs. 6TB for the others).
Price Comparison (June 2019) between DigitalOcean, Linode, UpCloud
Instance | Price | Storage | Egress Bandwidth |
Small 2GB RAM, 1 Core |
$10/mo | DigitalOcean: 50GB SSD Linode: 50GB SSD UpCloud: 50GB MaxIOPS |
DigitalOcean: 2TB Linode: 2TB UpCloud 2TB |
Medium 4GB RAM, 2 Cores |
$20/mo | DigitalOcean: 80GB SSD Linode: 80GB SSD UpCloud: 80GB MaxIOPS |
DigitalOcean: 4TB Linode: 4TB UpCloud: 4TB |
Large 8GB RAM, 4 Cores |
$40/mo | DigitalOcean: 160GB SSD Linode: 160GB SSD UpCloud: 160GB MaxIOPS |
DigitalOcean: 5TB Linode: 5TB UpCloud: 5TB |
X-Large 16GB RAM, 6 Cores |
$80/mo | DigitalOcean: 320GB SSD Linode: 320GB SSD UpCloud: 320GB MaxIOPS |
DigitalOcean: 6TB Linode: 8TB UpCloud 6TB |
Considering that DigitalOcean, Linode, and UpCloud tend to match one another on pricing, it’s important to realize that simply comparing the amount of RAM or CPU cores is not an apples-to-apples comparison. The performance of a cloud instance with the same number of CPU cores can vary significantly (even within the same provider), depending on the CPU type of the underlying host and how many other customers reside on the same server. Furthermore, memory, disk I/O, network latency and throughput can be equally as impactful on real-world performance as the sheer amount of RAM or CPU resources.
Synthetic benchmarks are an important, albeit imperfect way of comparing the real-world performance you could expect for typical workloads such as running a web/application server or database node. We are familiar with the performance characteristics of DigitalOcean and Linode, since we already have numerous clients running production services on their clouds, but we were particularly curious to see if UpCloud, a relatively new budget cloud provider, lives up to their claims of beating both competitors on disk I/O performance with their proprietary MaxIOPS storage technology.
Benchmark Methodology (June 2019) – $40/mo – 8GB RAM, 4 Cores Instances
We adapted Josh Sherman’s server benchmarks script on Github to add multi-threaded testing for the Sysbench OLTP benchmark, which simulates a production workload for a transactional MySQL database (e.g. an e-commerce store). Our test was inspired by Joshtronic’s $5 VPS Showdown published here. We wanted to test a larger instance, $40/mo – 8GB RAM, 4 Cores, which is more reflective of the cloud servers our customers use to deploy open source applications in the public cloud.
Like Sherman, we provisioned 3 instances on each provider and ran the tests independently on each of them, then used the average results as the basis of our comparisons. Our initial tests were conducted at the London, UK datacenter of each provider, as all 3 companies have a datacenter in the City.
Executive Summary
DigitalOcean came out on top for the File I/O benchmark, which was a huge shocker given how UpCloud touts its MaxIOPS technology as a competitive advantage.
- DigitalOcean came out on top for the File I/O benchmark (5106.34 reads/sec, 3404.22 writes/sec, 10887.98 fsyncs/sec), which was a huge shocker given how UpCloud touts its MaxIOPS technology as a competitive advantage.
- We surmise the reason for this is because DigitalOcean scales disk I/O speeds to the instance size (like AWS does for its EBS volumes).
- Since most reviewers on the Internet are benchmarking $5 or $10 instances, UpCloud comes out way ahead on file I/O performance towards the lower end, as they publicly proclaim they do not throttle IOPS for any of their instances.
- Linode was the clear winner on CPU operations per second (1,077.78 ops/sec) and latency (0.95ms), making them our recommendation for CPU-bound workloads.
- UpCloud had the fastest memory speeds for both read and write operations (4263.01 read Kops/sec, 4254.71 write Kops/sec).
- For the OLTP benchmark using 8 threads, creating and building an index for 1,000,000 records in a MySQL database, UpCloud pushed the most transactions and queries per second (1020.62 tps, 20412.48 qps) with the lowest latency (7.95ms).
- Network latency between the London, UK datacenter and the Speedtest.net test server in New York City, US was the lowest on UpCloud (68.94ms). Download throughput was the highest on Linode (361.20 Mbps), and Upload throughput was highest on UpCloud (202.55 Mbps).
Discussion & Analysis
UpCloud pushed 14.7% more MySQL transactions and queries per second on their 8GB VPS compared to the next best provider, DigitalOcean.
- UpCloud is the most performant cloud provider in real-world applications, with top performance in the OLTP benchmark which simulates running a database server. Compared to the next best provider, DigitalOcean, UpCloud pushed 14.7% more MySQL transactions and queries per second on their 8GB VPS.
- UpCloud’s leading memory speeds probably contributed to their best-in-class OLTP benchmark result, despite DigitalOcean edging them out on I/O speed.
- Customers will be particularly pleased with the I/O performance of UpCloud on their smaller instances < 8GB. We ran a separate File I/O benchmark on UpCloud’s $10/mo – 2GB VPS (5405.07 reads/sec, 3603.38 writes/sec, 11527.33 fsyncs/sec) and the speeds were equivalent to the 8GB instance.
- DigitalOcean throttles IOPS heavily on their smallest instances, clocking in at a dismal 953.63 reads/sec, 635.75 writes/sec, 2032.31 fsyncs/sec on their $10/mo 2GB VPS. But for instances 8GB or larger, DigitalOcean’s hardware can surpass UpCloud’s MaxIOPS storage in I/O speeds.
- Linode provides middle-of-the-road performance for memory speed (better than DigitalOcean, worse than UpCloud) but the best performance in terms of CPU operations/second and latency.
Recommendations
- The most progressive cloud provider in this segment is DigitalOcean, as they are usually the first to roll out managed services such as Managed Databases and Managed Kubernetes. They have a full repertoire including Load Balancers, Block Storage, and DigitalOcean Spaces (Object Storage). Comparatively speaking, Linode is a follower when it comes to introducing new products, with Object Storage and Managed Kubernetes slated for later this year. UpCloud does not have the option of managed load balancers, whereas DigitalOcean and Linode do for $10/mo.
- The most performant cloud provider in this segment is UpCloud. Bar none, their memory performance is top-notch amongst all 3 providers helping them take top marks on performance for real-world workloads. Customers deploying mostly instances < 8GB will particularly benefit from UpCloud’s “no-throttling” policy, letting you benefit from the maximum I/O speeds their hardware can support, even on their smallest instances. Switching database workloads from other cloud providers to UpCloud could be a no-brainer to experience approximately 15% in performance gains.
Linode‘s adoption of the AMD EPYC 7000 series processors keeps them in the lead for sheer processing power.
- Linode remains a competitive, budget cloud provider with best CPU performance. Their adoption of the AMD EPYC 7000 series processors keeps them in the lead for sheer processing power. If you deploy a new Linode, chances are your VM will be placed on one of their new hosts sporting an AMD EPYC processor. 2 times out of 3, our Linode was provisioned on an AMD EPYC 7501 host, delivering an average of 1191.03 ops/second at 2.0GHz, compared to the Intel Xeon E5-2680 v2’s 851.27 ops/second at 2.8GHz.
- Linode is the most mature cloud provider among the 3 companies, having celebrated its 16th anniversary this month. Longevity in the hosting industry is a difficult feat to achieve, especially as a privately held company like Linode. DigitalOcean is a VC-backed company which has raised $305.4M from investors, with 8 years in the business. UpCloud is a lesser known cloud provider based in Helsinki, Finland which got started around the same time as DigitalOcean. In the last year, they kicked their marketing efforts into overdrive which put them on the map with their MaxIOPS technology.
CPU Benchmark
Memory Read Benchmark
Memory Write Benchmark
File I/O Benchmark
MySQL Benchmark
Network Benchmark
Benchmark Raw Data
https://docs.google.com/spreadsheets/d/1OwxEzzJCxddhheMLYN5R7YywaO24s5UaRFIrQLSpr1s/edit?usp=sharing
Sign Up Bonuses for DigitalOcean, Linode, or UpCloud
If you enjoyed this benchmark analysis and would like to support us by signing up for any of the cloud providers mentioned, please feel free to use any of the links included in this article. To get started, you’ll receive a bonus from the cloud provider as well.
DigitalOcean ($50 Free Credit for 30 Days): Click Here
Linode ($10 Free Credit with coupon code LINODE10): Click Here
UpCloud ($25 Free Credit): Click Here
Keywords:
DigitalOcean vs. Linode
DigitalOcean vs. UpCloud
Linode vs. DigitalOcean
Linode vs. UpCloud
UpCloud vs. DigitalOcean
UpCloud vs. Linode