AWS EBS Magnetic HDD storage I/O performance

Share on:

Using http://www.coker.com.au/bonnie++/ as a benchmark. Sequential write performance seems to be what the AWS magnetic EBS is best at.

AWS Setup

  • 20Gb Magnetic HDD EBS volume
  • t1.micro instance in availability zone: eu-west-1b
  • command bonnie++ -s 2G -d /mnt/data/tmp

Local Setup

  • 750Gb Toshiba Magnetic HDD 5200 RPM, 8mb buffer
  • Core 2 Duo P7550 2.26Ghz , 8Gb RAM
  • command bonnie++ -s 16G -d /tmp

The size options here are double the systems RAM, this is to try to prevent reads from disk cache.

Results

AWS EBS VS Local HDD

Sequential IO Test   AWS EBS   Local Magnetic HDD
Write Block           20,595           62,549 
Read Block   10,571   63,776 
Rewrite Block   8,109   30,285 
Per Char        
Write Per Char   17,273   585
Read Per Char   10,213   2,322 
Random Seeks   399   109.2 

Values are in Kb/s except for Random Seeks which is seeks/s.

Observations

Sequential write performance seems to be what the AWS magnetic EBS is best at, it reads at half the rate. Local HDD read/write is more symmetrical.

Inefficient I/O code (reading/writing one byte each I/O call) really hurts performance on local HDD, but on AWS EBS it seems this is mostly negated by the underlying virtualization technology doing the i/o.

In general Magnetic EBS is three times slower at writing and six times slower at reading data than a local HDD.

Not sure about seek performance see the notes below.

Notes

There are some differences in bonnie++ versions, also the filesystem on the local HDD was nearly full a the time of the tests.

Bonnie++ Output

AWS:

Version 1.03e       ------Sequential Output------ --Sequential Input- --Random-
                    -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
ip-172-31-12-48  2G 17273  29 20595   3  8109   1 10213  17 10571   0 399.5   1
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++
ip-172-31-12-48,2G,17273,29,20595,3,8109,1,10213,17,10571,0,399.5,1,16,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++

Local:

Version  1.97       ------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
minerva         16G   585  90 62549  10 30285   5  2322  95 63776   7 109.2   3
Latency             22012us    2442ms    3533ms   19712us   32693us    1609ms
Version  1.97       ------Sequential Create------ --------Random Create--------
minerva             -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16 18445  34 +++++ +++ +++++ +++ 27279  49 +++++ +++ 30763  45
Latency             14623us    1209us    1105us    1175us     438us     516us
1.97,1.97,minerva,1,1485665620,16G,,585,90,62549,10,30285,5,2322,95,63776,7,109.2,3,16,,,,,18445,34,+++++,+++,+++++,+++,27279,49,+++++,+++,30763,45,22012us,2442ms,3533ms,19712us,32693us,1609ms,14623us,1209us,1105us,1175us,438us,516us
t