Sometime ago I stumbled on a popular story on Hacker News about Scaleway: a new cloud provider offering something very unique - bare metal ARM SSD servers. The vibe I got from their website and the discussion on HN was that they are targeting DigitalOcean and I decided to check it out and then benchmark the servers against similar DigitalOcean offering.
After signup you are greeted with a visually pleasing, although still rough around the edges interface. To spin a server, first you have to enter your billing information. I had a small issue with this step, because of 4 working elsewhere debit cards - it accepted only 1. Maybe this is just me and people who have credit cards instead of debit will have no problems.
The next step is adding an SSH key. Adding the key is mandatory - there is no option to login with root and an automatically generated password like DigitalOcean.
The final step is booting the server, you can choose from a list of all the popular distros and there are some "One Click" installers for popular apps like Wordpress, Ghost, Gitlab, Discourse. I am really interested in some of the apps in the "Coming Soon" section like Chromium, Android and Ubuntu Desktop.
The whole process from signup to login into my server took me around 15 minutes. One thing that could potentially slow you down is - the documentation is extensive, but there is not enough inline help or even links to the specific topic in the docs, so you have to find those manually.
One questionable decision I want to highlight - the people behind Scaleway have decided as part of their business model to charge for support. By default you are on the basic support tier which says 24x7x365 support by ticket, but they don't say when. The next payed tier is 2.99 euro/mo. for < 12 hours response time and the first reasonable support tier with < 2 hours response is 49 euro/mo. As it stands right now, the servers they provide are already in the premium range - 10 Euro for 2GB server and when you put support charges on top of that it could really gets expensive.
This was my first exposure to an ARM server and I was curious to know which apps from the typical web stack are going to run without any issues. I started with the underlying infrastructure apps like databases and web servers and then moved on to specific stacks like Rails and Wordpress.
|Redis||Requires minor workarounds: https://gist.github.com/martinrusev/47b33b93c64890689ff2#file-redis-sh|
|MongoDB||Not supported at the moment: https://jira.mongodb.org/browse/SERVER-1811|
|Ruby/Rails||Requires workarounds: https://gist.github.com/martinrusev/47b33b93c64890689ff2#file-rails-sh|
At the time of writing Scaleway only had 1 type of server configuration with more coming in the near future. It is a 4 core ARM with 2GB RAM. I spinned a droplet with similar characteristics on DigitalOcean and these are the results I got. For benchmarking I used
sysbench. You can take a look at the detailed results in this Github repo: https://github.com/martinrusev/cloudbench
# Command sysbench --test=cpu --cpu-max-prime=20000 run sysbench --test=cpu --cpu-max-prime=20000 run --num-threads=4 # DigitalOcean - single threaded total time: 42.4121s total number of events: 10000 total time taken by event execution: 42.4079 per-request statistics: min: 3.80ms avg: 4.24ms max: 17.91ms approx. 95 percentile: 5.20ms DigitalOcean - multi-threaded total time: 21.3409s total number of events: 10000 total time taken by event execution: 85.3456 per-request statistics: min: 3.76ms avg: 8.53ms max: 23.16ms approx. 95 percentile: 13.02ms # Scaleway - single threaded total time: 685.5120s total number of events: 10000 total time taken by event execution: 685.5024 per-request statistics: min: 68.52ms avg: 68.55ms max: 76.68ms approx. 95 percentile: 68.58ms # Scaleway - multi-threaded total time: 171.3962s total number of events: 10000 total time taken by event execution: 685.4663 per-request statistics: min: 68.51ms avg: 68.55ms max: 96.01ms approx. 95 percentile: 68.56ms
One thing I would like to mention here. The SSD drives you are going to get on your Scaleway server are something they call - LSSD or Local SSD. These drivers are not physically attached to your server - they are mounted using via the NBD protocol(Network Block Device). I personally have no experience with NBD, but as a general rule, anything accessed on a network have at least some latency.
In this test I am using a 6GB file which should prevent caching in RAM on both servers.
# Command sysbench --test=fileio --file-total-size=6G prepare sysbench --test=fileio --file-total-size=6G --file-test-mode=rndrw --max-time=300 --max-requests=0 --file-extra-flags=direct run sysbench --test=fileio --file-total-size=6G cleanup # DigitalOcean Operations performed: 628590 Read, 419060 Write, 1340928 Other = 2388578 Total Read 9.5915Gb Written 6.3943Gb Total transferred 15.986Gb (54.565Mb/sec) 3492.15 Requests/sec executed # Scaleway Operations performed: 188313 Read, 125542 Write, 401664 Other = 715519 Total Read 2.8734Gb Written 1.9156Gb Total transferred 4.789Gb (16.347Mb/sec) 1046.18 Requests/sec executed
On both servers I am using the latest version available in the Ubuntu 14.04 repositories, which is 5.5. You can get better results with MySQL 5.6, but at the time of writing it was not available in the repo.
mysql -u root -p create database benchmark; sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=benchmark --mysql-user=root --mysql-password=123456 prepare sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=benchmark --mysql-user=root --mysql-password=123456 --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run # DigitalOcean OLTP test statistics: queries performed: read: 475608 write: 0 other: 67944 total: 543552 transactions: 33972 (566.11 per sec.) deadlocks: 0 (0.00 per sec.) read/write requests: 475608 (7925.50 per sec.) other operations: 67944 (1132.21 per sec.) Test execution summary: total time: 60.0098s total number of events: 33972 # Scaleway OLTP test statistics: queries performed: read: 392392 write: 0 other: 56056 total: 448448 transactions: 28028 (467.07 per sec.) deadlocks: 0 (0.00 per sec.) read/write requests: 392392 (6539.00 per sec.) other operations: 56056 (934.14 per sec.) Test execution summary: total time: 60.0080s total number of events: 28028
Scaleway is a very intersting offering and I would definitely keep an eye of what they are going to do in the future.
In all my tests, the performance of their servers was slower compared to DigitalOcean, but this could be because they are using Network drivers(LSSD) and a 32bit ARM architecture(armv7l)
In terms of specs the Scaleway servers are vey similar to Raspberry Pi 2 and even if you don't end up deploying your apps, they could be useful for testing things that you want to on ARM and you don't have an Raspberry Pi lying around and don't want to deal with complicated emulators like Qemu
Thanks for reading and I hope you enjoyed this little Scaleway review !