AWS vs Google Cloud vs Azure vs DigitalOcean: VPS Performance

In this article we will be looking at performance benchmarks from these four cloud providers and noting down each ranking placement for each benchmark as follows:

  • 1st place gets 3 points;
  • 2nd place gets 2 points;
  • 3rd place gets 1 point;
  • 4th place gets 0 points;
  • Any ties for a place will each get the upper placement points.

By the end of this series of benchmark analysis, we should have a winner among the four that looks like having the best price to performance ratio.

Let’s get started, this is going to be a long list of tables!

How We Started

First, we picked some medium-tier, general-purpose VPS’s from each of the four cloud providers and left them with the normal storage (we did not change to premium storage or any other available option).

ProviderPlanCostMemoryCPUsDisk Space
DigitalOcean4GB 2 cores$20.004GB280GB
GCPe2-medium$24.464GB240GB
AWSt3-medium$29.954GB28GB
AzureB2s$30.374GB28GB

These VPS’s have the same memory and CPU specs, ignoring the discrepancies between the provided storage. Obviously, in this step, the price matters most in determining the winner.

Web Related Benchmarks

Web Server Latency

These are the webserver response times when it’s operating under the max load level that doesn’t cause it to return errors or time out.

Web server latency can be influenced by the VPS network speed, VPS storage read/write speed, CPU throttling, CPU steal, CPU operation limit, memory speed, memory capacity. More details in the benchmarks that follow.

A lower number means the VPS is faster.

ProviderAvg. latency without errors
AWS53.3ms
Azure58.3ms
GCP63.9ms
DigitalOcean77.4ms

Web Server Capacity

This is the maximum number of requests per second that the web application can sustain without producing errors.

A higher number means the VPS is faster and is still 100% reliable. The moment in which the VPS responds with errors it’s reliability percentage starts to go down.

ProviderRequests/second
Azure25
DigitalOcean20
GCP15
AWS15

CPU Usage

This shows the CPU utilization of the VPS while the web application is serving 10 requests per second.

A higher CPU idle number means the VPS was consuming fewer resources. Which would mean that the machine would have higher performance levels than the machines that had lower idle CPU percentages, translating in your server holding more users at the same time for example than the rest.

ProviderPercentage
AWS66.4%
Azure62.63%
DigitalOcean59.66%
GCP56.16%

As far as web performance benchmarks go, that’s about it. Here are the rankings up until now:

#ProviderPoints
1AWS8
2Azure7
3DigitalOcean6
4GCP4

If you were tuned in just for some web performance benchmarks you can tune out here. Next, we will be getting into some more underlying benchmarks that will shake things up a bit.

CPU Intensive Operation Rate

Higher is better. The underlying CPU’s ability to compute more operations per second ultimately impacts the speed at which it solves tasks, improving site speed and backend process speed.

ProviderOperations/second
DigitalOcean704.67
Azure687.52
AWS646.67
GCP521.8

IO Benchmarks

Test with various kinds of file I/O workloads.

Random Read/Write Transfer Rates

Read and Write tests are performed separately.

Higher speeds are better because being able to read and write as fast as possible impacts general website performance.

ProviderReadWrite
DigitalOcean114.4 MiB/s20.63 MiB/s
AWS16.29 MiB/s11.84 MiB/s
GCP14.36 MiB/s10.4 MiB/s
Azure6.28 MiB/s6.26 MiB/s

Random Read Latencies

Only reads were performed during this test.

Lower is better, being able to read with the smallest delay possible increases response times.

ProviderAvg. latency
DigitalOcean0.14ms
AWS0.96ms
GCP1.09ms
Azure2.49ms

Random Write Latencies

Only writes were performed during this test.

Lower is better, being able to write with the smallest delay possible increases response times.

ProviderAvg. latency
DigitalOcean0.33ms
AWS0.58ms
GCP0.66ms
Azure14.86ms

Random Read+Write Rates

This is a combined test where reads and writes are performed at the same time.

Higher is better. As opposed to the previous IO test that did read and write in two separate tests, this read and write test is executed in parallel, and as you can see the results show lower speeds.

Higher speeds are better because being able to read and write as fast as possible impacts general website performance.

ProviderReadWrite
DigitalOcean17.45 MiB/s11.63 MiB/s
AWS8.3 MiB/s5.53 MiB/s
GCP7.29 MiB/s4.86 MiB/s
Azure0.66 MiB/s0.44 MiB/s

Sequential Read/Write Rates

Read and Write tests are performed separately, each read and each write is executed in sequence not at the same time.

Higher speeds are better because being able to read and write as fast as possible impacts general website performance.

ProviderReadWrite
DigitalOcean312.03 MiB/s152.79 MiB/s
AWS117.89 MiB/s116.74 MiB/s
GCP41.04 MiB/s39.58 MiB/s
Azure24.75 MiB/s11.54 MiB/s

Memory Benchmarks

Memory allocation and transfer speed.

Memory Read/Write Rates

Read and Write tests are performed separately.

Higher is better.

ProviderReadWrite
AWS8.14 GiB/s5.45 GiB/s
Azure8.74 GiB/s4.59 GiB/s
DigitalOcean9.08 GiB/s3.6 GiB/s
GCP7.24 GiB/s5.14 GiB/s

In this section, the winner has the best ratio of read vs write, not necessarily the biggest of both. The winner is AWS because it has the best mean value between the two.

General Workload Benchmarks

General benchmarks on tasks per hour, network speed, CPU steal and coefficient of variation of number of tasks.

Network Speed

A higher number means the VPS is faster.

ProviderDownloadUpload
Azure1250 Mbps315 Mbps
AWS696 Mbps304 Mbps
DigitalOcean478 Mbps255 Mbps
GCP384 Mbps233 Mbps

Number of tasks executed per hour

This is the average number of iterations the VPS executed every hour over 24 hours.

A higher number means the VPS is faster.

Provider# of tasks
DigitalOcean5845.084
AWS4812.754
GCP4792.244
Azure2349.474

Coefficient of Variation of number of tasks per hour

The coefficient of variation represents the stability of the VPS performance throughout the test. It’s the standard deviation divided by the mean number of iterations per hour.

A lower number indicates better stability.

ProviderPercentage
GCP0.529%
DigitalOcean2.167%
AWS2.185%
Azure36.321%

CPU Steal

This is the average proportion of CPU that is “stolen” by the hypervisor. A lower performance can often be explained by CPU steal running over 1%.

A higher number means the VPS host may be overallocated.

ProviderMax percentage
Azure0%
GCP0.09%
AWS0.46%
DigitalOcean0.91%

Final Rankings

After counting all the points this is the final outcome of our analysis, based on what you get for what you pay, some of the results were close enough not to actually differentiate between competitors but a ranking is a ranking, and even ½ a byte counts!

#ProviderPoints
1DigitalOcean31
2AWS28
3Azure17
4GCP15

*These scores are just based on standings in the individual benchmarks, synergies were not taken into consideration.

 

That’s it – DigitalOcean is the overall best cloud service provider in terms of VPS performance when compared to AWS, Azure, and Google’s Cloud Platform. However, each of the tables above shows a different metric that may be more important to some users.

For example, even though GCP ranked last if you’re looking for stability while performing lots of tasks, it’s your best bet. The gist of it is: everyone needs something specific from their VPS, so you need to weigh all the pros and cons. Which of these will you go for?