Digital Ocean Toronto 1GB VPS Benchmark

In this post we are going to benchmark the cheapest VPS offering from Digital Ocean. As I am in Canada, I chose the Toronto Datacenter for the benchmarks. For all benchmarks, a vanilla Ubuntu 16.04 image was chosen

To truly get an idea of what a VPS offers in terms of performance, several different benchmarks should be ran against the hardware/network to see what it can do. I settled on three fairly standard scripts.

  • Geekbench
  • bench.sh
  • speedtest-cli

Let’s get started with the basic network connectivity test that is speedtest-cli. Before we can kick off running the benchmark, there are a few dependanices that need to be installed on the VPS. Here are the commands needed to get things ready to run the speedtest-cli benchmark

apt-get install python-pip
pip install speedtest-cli

There is a good chance that the server is going to throw a warning that states

You are using pip version 8.1.1, however version 19.1 is available.
You should consider upgrading via the ‘pip install --upgrade pip’ command.
So, next step is to upgrade pip, as we were told!

> pip install --upgrade pip

From there, we want to drop into a temporary directory from where we can kick off the benchmarking.

> cd /tmp
Now, let’s grab the bits of code we need in order to run the speedtest-cli benchmark tool

> wget https://github.com/sivel/speedtest-cli/archive/master.zip
Great! Now let’s unzip that file and get to work

> unzip master.zip
As this is a vanilla install of Ubunty 16.04, the unzip package does not exist, so yet another warning/error is thrown.

The program ‘unzip’ is currently not installed. You can install it by typing:
apt install unzip

Easy enough to get around that issue, as it literally tells us exactly what to do. Once we have unzipped the package, we need to change directories into the new speedtest-cli-master directory that was created by the unzip process.
`

> cd speedtest-cli-master/

Once you are in the speedtest directory, it is simply a matter of kicking off the speedtest script. As I wanted the fancy visuals for this blog post, I executed the command with the --share parameter

> speedtest-cli --share If you do not wish to get the graphics, and are happy with seeing the results of the benchmark at the CLI, then simply run

> speedtest-cli

Now, onto the results of the speedtest-cli benchmark. Holy moly, what a network. It makes me wonder if Digital Ocean are in the same datacenter, or even the same rack as the speed test servers/devices.
Pass 1 through Speedtest-cli

Excellent results, so onto the second pass.

I have to wonder why it is only getting 3.5 stars?

Now that we know that the network is excellent, onto bench marking the CPU. Next up on the bench is Geekbench. As with the speedtest-cli tool, we need to install some prerequisite software before we can kick off the benchmark suite.

> sudo dpkg --add-architecture i386
> sudo apt-get update
> sudo apt-get install libc6:i386 libstdc++6:i386

With the pre-requistes out of the way, let’s go get some geekbench goodness.

> wget http://cdn.geekbench.com/Geekbench-4.3.3-Linux.tar.gz

You will notice that we are downloading v.4.3.3, which is the latest release of Geekbench as of this writing. Now that we have it downloaded onto our Digital Ocean VPS, we need to tar the file, to rip out the compressed files.

> tar -zxvf Geekbench-4.3.3-Linux.tar.gz

Now, we need to drop into the newly created directory.

> cd Geekbench-4.3.3-Linux/

And from there, we kick off the benchmark. This benchmark does take quite a bit of time to run, so be patient. Most of my passes completed in less than 10 minutes.

> ./geekbench_x86_64

Once Geekbench has finished running on the VPS, we are given a link to the results.

https://browser.geekbench.com/v4/cpu/12927020

Here is the readers digest version.

Single Core Score: 3348
Multi Core Score: 3302

Processor Information
Name Intel Xeon Gold 6140
Topology 1 Processor, 1 Core
Identifier GenuineIntel Family 6 Model 85 Stepping 4
Base Frequency 2.29 GHz
L1 Instruction Cache 32.0 KB x 1
L1 Data Cache 32.0 KB x 1
L2 Cache 1.00 MB x 1
L3 Cache 24.8 MB x 1
Single-Core Score 3348
Crypto Score 2913
Integer Score 3634
Floating Point Score 3627
Memory Score 2394
Multi-Core Score 3302
Crypto Score 3091
Integer Score 3730
Floating Point Score 3663
Memory Score 1852

Love to see that Digital Ocean are spending some of their Venture Capital money on excellent processors.

Now that we have put both speedtest-cli and Geekbench through it’s paces, time to get on with bench-marking the VPS using good old bench.sh. This is one of my favourite tests to run on a VPS, as it only tests Network and Disk I/O, both of which are extrememly imporant to internet facing services.

There are no prerequisites for running this script, which is why it is one of my all time favorites. A single one liner gets the ball rolling.
wget -qO- bench.sh | bash

You can see the benchmark run in realtime, which usually takes about two minutes. Once the benchmark has finished running on the VPS, it generates a report on the CLI.

Here are the results of the 1GB Digital Ocean VPS in the Toronto Datacenter.


CPU model : Intel® Xeon® Gold 6140 CPU @ 2.30GHz
Number of cores : 1
CPU frequency : 2294.608 MHz
Total size of Disk : 25.1 GB (1.6 GB Used)
Total amount of Mem : 992 MB (28 MB Used)
Total amount of Swap : 0 MB (0 MB Used)
System uptime : 0 days, 0 hour 23 min
Load average : 0.16, 0.15, 0.11
OS : Ubuntu 16.04.6 LTS
Arch : x86_64 (64 Bit)
Kernel : 4.4.0-145-generic

I/O speed(1st run) : 718 MB/s
I/O speed(2nd run) : 648 MB/s
I/O speed(3rd run) : 434 MB/s
Average I/O speed : 600.0 MB/s

Node Name IPv4 address Download Speed
CacheFly 205.234.175.175 127MB/s
Linode, Tokyo, JP 106.187.96.148 13.8MB/s
Linode, Singapore, SG 139.162.23.4 9.67MB/s
Linode, London, UK 176.58.107.39 17.7MB/s
Linode, Frankfurt, DE 139.162.130.8 23.0MB/s
Linode, Fremont, CA 50.116.14.9 32.7MB/s
Softlayer, Dallas, TX 173.192.68.18 29.1MB/s
Softlayer, Seattle, WA 67.228.112.250 19.4MB/s
Softlayer, Frankfurt, DE 159.122.69.4 7.37MB/s
Softlayer, Singapore, SG 119.81.28.170 5.98MB/s
Softlayer, HongKong, CN 119.81.130.170 6.52MB/s

As with all benchmarking, two to three runs should be good to determine the average performance of the VPS. Here is run two.


CPU model : Intel® Xeon® Gold 6140 CPU @ 2.30GHz
Number of cores : 1
CPU frequency : 2294.608 MHz
Total size of Disk : 25.1 GB (1.6 GB Used)
Total amount of Mem : 992 MB (27 MB Used)
Total amount of Swap : 0 MB (0 MB Used)
System uptime : 0 days, 0 hour 27 min
Load average : 0.18, 0.18, 0.13
OS : Ubuntu 16.04.6 LTS
Arch : x86_64 (64 Bit)
Kernel : 4.4.0-145-generic

I/O speed(1st run) : 695 MB/s
I/O speed(2nd run) : 635 MB/s
I/O speed(3rd run) : 587 MB/s
Average I/O speed : 639.0 MB/s

Node Name IPv4 address Download Speed
CacheFly 205.234.175.175 104MB/s
Linode, Tokyo, JP 106.187.96.148 13.8MB/s
Linode, Singapore, SG 139.162.23.4 9.61MB/s
Linode, London, UK 176.58.107.39 20.2MB/s
Linode, Frankfurt, DE 139.162.130.8 23.5MB/s
Linode, Fremont, CA 50.116.14.9 31.1MB/s
Softlayer, Dallas, TX 173.192.68.18 28.7MB/s
Softlayer, Seattle, WA 67.228.112.250 20.0MB/s
Softlayer, Frankfurt, DE 159.122.69.4 9.03MB/s
Softlayer, Singapore, SG 119.81.28.170 5.27MB/s
Softlayer, HongKong, CN 119.81.130.170 5.85MB/s

And run three.


CPU model : Intel® Xeon® Gold 6140 CPU @ 2.30GHz
Number of cores : 1
CPU frequency : 2294.608 MHz
Total size of Disk : 25.1 GB (1.6 GB Used)
Total amount of Mem : 992 MB (28 MB Used)
Total amount of Swap : 0 MB (0 MB Used)
System uptime : 0 days, 0 hour 29 min
Load average : 0.28, 0.25, 0.17
OS : Ubuntu 16.04.6 LTS
Arch : x86_64 (64 Bit)
Kernel : 4.4.0-145-generic

I/O speed(1st run) : 612 MB/s
I/O speed(2nd run) : 719 MB/s
I/O speed(3rd run) : 671 MB/s
Average I/O speed : 667.3 MB/s

Node Name IPv4 address Download Speed
CacheFly 205.234.175.175 103MB/s
Linode, Tokyo, JP 106.187.96.148 14.2MB/s
Linode, Singapore, SG 139.162.23.4 8.87MB/s
Linode, London, UK 176.58.107.39 20.3MB/s
Linode, Frankfurt, DE 139.162.130.8 21.6MB/s
Linode, Fremont, CA 50.116.14.9 29.7MB/s
Softlayer, Dallas, TX 173.192.68.18 28.7MB/s
Softlayer, Seattle, WA 67.228.112.250 21.0MB/s
Softlayer, Frankfurt, DE 159.122.69.4 8.22MB/s
Softlayer, Singapore, SG 119.81.28.170 5.18MB/s
Softlayer, HongKong, CN 119.81.130.170 6.09MB/s

As you can see, the disk IO is excellent, which is to be expected as Digital Ocean only runs on pure SSD drives. As far as I know they have not upgraded to NVMe technology just yet. What is somewhat worrying is the network connectivity outside of North America.

Which is the newest data enter from Digital Ocean? Perhaps that explains the benchmarks (network anyway). Newer equipment?

Yeah - not sure if that is the case, as the Toronto Digital Ocean Data Center opened in 2015.