Following yesterdays published VPS performance data and reading some of the feedback relating to testing virtual systems I received, I wanted to revisit Digital Oceans numbers again. For what its worth, I really like these guys, I applaud them for bringing another quality hosting solution to market at is undeniably a fantastic price. I’m committed to hosting my blog on their $5 server so I’ll be watching with a keen eye how the performance trends.
I created two new droplets today, a 512MB / $5 per month and a 2048MB / $20 per month droplet. I re-ran the tests from yesterday to see how these new droplets would perform and see if they could level the field with Linode’s awesome results from yesterday. I haven’t had any feedback suggesting that the testing methods were flawed so for the sake of producing comparative results, I’ve left everything the same.
The test details are below but to save you scrolling through all the data to get to them I’ve put the summary table at the top. I’ll put the 2048 droplet results in a separate post to make reading easier. Hope this is useful.
Test | Digital Ocean 512 | Linode | Dig Ocean 512 (3/1/14) | Dig Ocean 2048 (3/1/14) |
---|---|---|---|---|
Writing speed (MB/s) | 269 | 1200 | 426 | 291 |
Unbuffered read (MB/s) | 335 | 533 | 874 | 650 |
Buffered read (MB/s) | 383 | 986 | 545 | 4983 |
Bonnie read (MB/s) | 328 | 670 | 622 | 692 |
Bonnie write (MB/s) | 154 @ 44% | 558 @ 99% | 371 @ 64% | 322 @ 76% |
Bonnie Update (MB/s) | 155 @ 61% | 424 @ 61% | 335 @ 65% | 229 @ 52% |
Bonnie random seek | 5756 | +++++ | 13361 | 9613 |
IO seek (no cache) | - | - | 8524 IOPS, 33.3 MB/s | 8718 IOPS, 34.1 MB/s |
IO seek (cached) | - | - | 214825 IOPS, 839.2 MB/s | 221504 IOPS, 865.2 MB/s |
IO reads (sequential) | - | - | 2805 IOPS, 701.2 MB/s | 2691 IOPS, 672.7MB/s |
FIO / Queue Depth = 1 | ||||
Completion Latency (usec) | 233 | 114 | 115 | 106 |
Bandwidth (MB/s) | 16.2 | 31.57 | 32.01 | 35.71 |
IO request complete @250usec | 95.00% | 99.97% | 99.54% | 99.57% |
CPU Utilisation | 52% | 27% | 48.85% | 39.72% |
FIO / Queue Depth = 8 | ||||
Completion Latency (usec) | 476 | 162 | 324 | 235.69 |
Bandwidth (MB/s) | 61.0 | 173.40 | 103.89 | 124.26 |
IO request complete @250usec | 15.26% | 92.5% | 58.67% | 70.31% |
CPU Utilisation | 63% | 80% | 78.19% | 69.94% |
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 3.08814 s, 348 MB/s
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 2.19788 s, 489 MB/s
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 2.43367 s, 441 MB/s
# echo 3 > /proc/sys/vm/drop_caches
# dd if=tempfile of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 1.35384 s, 793 MB/s
# echo 3 > /proc/sys/vm/drop_caches
# dd if=tempfile of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 1.19989 s, 895 MB/s
# echo 3 > /proc/sys/vm/drop_caches
# dd if=tempfile of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 1.14668 s, 936 MB/s
# dd if=tempfile of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 2.1516 s, 499 MB/s
# dd if=tempfile of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 1.88014 s, 571 MB/s
# dd if=tempfile of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 1.89512 s, 567 MB/s
# bonnie++ -d /tmp -r 4096 -u root
Using uid:0, gid:0.
Writing a byte at a time...done
Writing intelligently...done
Rewriting...done
Reading a byte at a time...done
Reading intelligently...done
start 'em...done...done...done...done...done...
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version 1.96 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
testing 8G 569 99 380080 64 343365 65 2369 99 637754 66 13361 366
Latency 24976us 51012us 333ms 5443us 6066us 7666us
Version 1.96 ------Sequential Create------ --------Random Create--------
testing -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 25032 74 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++
Latency 1381us 436us 581us 355us 152us 290us
1.96,1.96,testing,1,1391454316,8G,,569,99,380080,64,343365,65,2369,99,637754,66,13361,366,16,,,,,25032,74,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++,24976us,51012us,333ms,5443us,6066us,7666us,1381us,436us,581us,355us,152us,290us
# ioping /tmp -c 10
4096 bytes from /tmp (ext4 /dev/disk/by-label/DOROOT): request=1 time=0.2 ms
4096 bytes from /tmp (ext4 /dev/disk/by-label/DOROOT): request=2 time=0.3 ms
4096 bytes from /tmp (ext4 /dev/disk/by-label/DOROOT): request=3 time=0.3 ms
4096 bytes from /tmp (ext4 /dev/disk/by-label/DOROOT): request=4 time=0.2 ms
4096 bytes from /tmp (ext4 /dev/disk/by-label/DOROOT): request=5 time=0.3 ms
4096 bytes from /tmp (ext4 /dev/disk/by-label/DOROOT): request=6 time=0.4 ms
4096 bytes from /tmp (ext4 /dev/disk/by-label/DOROOT): request=7 time=0.2 ms
4096 bytes from /tmp (ext4 /dev/disk/by-label/DOROOT): request=8 time=0.4 ms
4096 bytes from /tmp (ext4 /dev/disk/by-label/DOROOT): request=9 time=0.3 ms
4096 bytes from /tmp (ext4 /dev/disk/by-label/DOROOT): request=10 time=0.3 ms
/tmp (ext4 /dev/disk/by-label/DOROOT) ioping statistics ---
10 requests completed in 9008.6 ms, 3744 iops, 14.6 mb/s
min/avg/max/mdev = 0.2/0.3/0.4/0.1 ms
# ioping /tmp -RD
--- /tmp (ext4 /dev/disk/by-label/DOROOT) ioping statistics ---
12596 requests completed in 3000.0 ms, 8524 iops, 33.3 mb/s
min/avg/max/mdev = 0.1/0.1/16.7/0.1 ms
# ioping /tmp -RC
--- /tmp (ext4 /dev/disk/by-label/DOROOT) ioping statistics ---
29787 requests completed in 3000.0 ms, 214825 iops, 839.2 mb/s
min/avg/max/mdev = 0.0/0.0/0.1/0.0 ms
# ioping /tmp -RL
--- /tmp (ext4 /dev/disk/by-label/DOROOT) ioping statistics ---
5408 requests completed in 3000.1 ms, 2805 iops, 701.2 mb/s
min/avg/max/mdev = 0.3/0.4/11.2/0.3 ms
# fio random-read-test
random-read: (g=0): rw=randread, bs=4K-4K/4K-4K, ioengine=sync, iodepth=1
fio 1.59
Starting 1 process
random-read: Laying out IO file(s) (1 file(s) / 128MB)
Jobs: 1 (f=1): [r] [100.0% done] [38247K/0K /s] [9337 /0 iops] [eta 00m:00s]
random-read: (groupid=0, jobs=1): err= 0: pid=1762
read : io=131072KB, bw=33267KB/s, iops=8316 , runt= 3940msec
clat (usec): min=83 , max=19786 , avg=115.65, stdev=116.43
lat (usec): min=83 , max=19786 , avg=116.04, stdev=116.44
bw (KB/s) : min=26608, max=38232, per=98.53%, avg=32779.43, stdev=5425.96
cpu : usr=7.01%, sys=41.84%, ctx=27490, majf=0, minf=24
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued r/w/d: total=32768/0/0, short=0/0/0
lat (usec): 100=34.04%, 250=65.50%, 500=0.37%, 750=0.05%, 1000=0.02%
lat (msec): 2=0.01%, 4=0.01%, 20=0.01%
Run status group 0 (all jobs):
READ: io=131072KB, aggrb=33267KB/s, minb=34065KB/s, maxb=34065KB/s, mint=3940msec, maxt=3940msec
Disk stats (read/write):
vda: ios=31758/0, merge=0/0, ticks=2620/0, in_queue=2616, util=66.65%
# fio random-read-test-aio
random-read: (g=0): rw=randread, bs=4K-4K/4K-4K, ioengine=libaio, iodepth=8
fio 1.59
Starting 1 process
Jobs: 1 (f=1)
random-read: (groupid=0, jobs=1): err= 0: pid=1796
read : io=131072KB, bw=109868KB/s, iops=27466 , runt= 1193msec
slat (usec): min=5 , max=1207 , avg=20.76, stdev=21.26
clat (usec): min=54 , max=19571 , avg=264.98, stdev=324.73
lat (usec): min=68 , max=19588 , avg=287.69, stdev=325.98
bw (KB/s) : min=90248, max=121408, per=96.32%, avg=105828.00, stdev=22033.45
cpu : usr=15.10%, sys=63.09%, ctx=1405, majf=0, minf=29
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=100.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.1%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued r/w/d: total=32768/0/0, short=0/0/0
lat (usec): 100=0.63%, 250=58.04%, 500=36.52%, 750=3.88%, 1000=0.83%
lat (msec): 2=0.05%, 4=0.02%, 20=0.02%
Run status group 0 (all jobs):
READ: io=131072KB, aggrb=109867KB/s, minb=112504KB/s, maxb=112504KB/s, mint=1193msec, maxt=1193msec
Disk stats (read/write):
vda: ios=31222/0, merge=0/0, ticks=4124/0, in_queue=4100, util=82.68%