The ARM cloud scene just got more interesting with Scaleway’s announcement of their new ARMv8 product.

We wanted to have a quick look at the performance of those ARM cores, so we spun up a node and poked around. Here’s what we found.

The 4-core ARM Server

Scaleway’s “ARM64-4GB” is based on the ThunderX ARMv8 SoC from Cavium, and comes with 4 cores and 4GB RAM. From the UI, only Ubuntu 16.04 and Debian 8 images appear to be available.

Packet.net’s Type 2A ARMv8 servers also use Cavium ThunderX processors.

We spun up one of these and installed the OpsDash Smart Agent which is also available for monitoring ARMv8 platforms. Here’s the default dashboard for the instance:

The ARM Server Dashboard

You can see that the bundled 100GB SSD disk comes as two separate block devices.

Running a Benchmark

We ran a simple CPU benchmark, stressing all the cores:

root@scw-735a66-arm:~# sysbench --test=cpu --cpu-max-prime=100000 --num-threads=4 run
sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 4

Doing CPU performance benchmark

Threads started!
Done.

Maximum prime number checked in CPU test: 100000


Test execution summary:
    total time:                          65.2214s
    total number of events:              10000
    total time taken by event execution: 260.8059
    per-request statistics:
         min:                                 25.74ms
         avg:                                 26.08ms
         max:                                 58.11ms
         approx.  95 percentile:              26.58ms

Threads fairness:
    events (avg/stddev):           2500.0000/2.74
    execution time (avg/stddev):   65.2015/0.00

The total time was 65.2214s. Considering what is coming up next, that is impressive! Here is how the graphs looked during the execution:

ARM server running the sysbench

The 4-Core Intel SoC

Since Scaleway also has a “VC1M” product with the same RAM and same number of cores but running on Intel Atom C2750, we were curious as to what numbers that would have. We spun up a VC1M node:

root@scw-383195-x86:~# cat /proc/cpuinfo | grep 'model name'
model name	: Intel(R) Atom(TM) CPU  C2750  @ 2.40GHz
model name	: Intel(R) Atom(TM) CPU  C2750  @ 2.40GHz
model name	: Intel(R) Atom(TM) CPU  C2750  @ 2.40GHz
model name	: Intel(R) Atom(TM) CPU  C2750  @ 2.40GHz

and tried the same benchmark:

root@scw-383195-x86:~# sysbench --test=cpu --cpu-max-prime=100000 --num-threads=4 run
sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 4

Doing CPU performance benchmark

Threads started!
Done.

Maximum prime number checked in CPU test: 100000


Test execution summary:
    total time:                          105.6248s
    total number of events:              10000
    total time taken by event execution: 422.4050
    per-request statistics:
         min:                                 41.94ms
         avg:                                 42.24ms
         max:                                 85.87ms
         approx.  95 percentile:              42.92ms

Threads fairness:
    events (avg/stddev):           2500.0000/5.39
    execution time (avg/stddev):   105.6013/0.01

This took more time, clocking in at 105.6248s, a good bunch more than the ARM server.

Which made us even more curious – what numbers would we get on DigitalOcean and Vultr?

A 4-core DigitalOcean Node

So we spun up a 4-core server on DigitalOcean that comes with 8GB RAM. Here’s what /proc/cpuinfo said:

root@do-4core:~# cat /proc/cpuinfo | grep 'model name'
model name	: Intel(R) Xeon(R) CPU E5-2650L v3 @ 1.80GHz
model name	: Intel(R) Xeon(R) CPU E5-2650L v3 @ 1.80GHz
model name	: Intel(R) Xeon(R) CPU E5-2650L v3 @ 1.80GHz
model name	: Intel(R) Xeon(R) CPU E5-2650L v3 @ 1.80GHz

Again, we ran the same benchmark:

root@do-4core:~# sysbench --test=cpu --cpu-max-prime=100000 --num-threads=4 run
sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 4

Doing CPU performance benchmark

Threads started!
Done.

Maximum prime number checked in CPU test: 100000


Test execution summary:
    total time:                          89.1095s
    total number of events:              10000
    total time taken by event execution: 356.3826
    per-request statistics:
         min:                                 34.32ms
         avg:                                 35.64ms
         max:                                 90.34ms
         approx.  95 percentile:              38.19ms

Threads fairness:
    events (avg/stddev):           2500.0000/9.97
    execution time (avg/stddev):   89.0956/0.01

And we have a time of 89.1095s for this one.

Vultr

Vultr offers a 4-core VM with 8GB RAM. The VMs do not expose the physical CPU model or make, although they are Intel 64-bits. Here’s the sysbench result:

root@vultr-4core:~# sysbench --test=cpu --cpu-max-prime=100000 --num-threads=4 run
sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 4

Doing CPU performance benchmark

Threads started!
Done.

Maximum prime number checked in CPU test: 100000


Test execution summary:
    total time:                          68.7910s
    total number of events:              10000
    total time taken by event execution: 275.0976
    per-request statistics:
         min:                                 26.70ms
         avg:                                 27.51ms
         max:                                 53.51ms
         approx.  95 percentile:              28.54ms

Threads fairness:
    events (avg/stddev):           2500.0000/11.64
    execution time (avg/stddev):   68.7744/0.01

That’s 68.7910s.

Parting Thoughts

This was not a very scientific test, just a quick comparison of a new product. However, the results are quite interesting, especially considering that the prices for the products in this chart vary from €5.99 to $80 per month!

A simple CPU benchmark across providers (smaller is better)

We are excited by the expanding ARM cloud offerings, and especially the way it’s introducing different price ratios for CPU and RAM. Maybe we’re seeing the beginning of hybrid-architecture cloud deployments? Interesting times!

New Here?

OpsDash can be used to monitor ARMv6, ARMv7, and ARMv8 infrastructure. Monitor your Scaleway or Packet setup or even your own Raspberry Pi. Signup for an OpsDash Free Trial to check it out!

OpsDash is a server monitoring, service monitoring, and database monitoring solution for monitoring MySQL, PostgreSQL, MongoDB, memcache, Redis, Apache, Nginx, Elasticsearch and more. It provides intelligent, customizable dashboards and spam-free alerting via email, HipChat, Slack, PagerDuty and Webhooks. Send in your custom metrics with StatsD and Graphite interfaces built into each agent.