A quick & dirty docker disk performance test

Introduction
Any means of additional layers is often considered an “overhead” that decreases performance. We all heard the statements that database should be physical and so on… So let’s put the medal to the metal and do a very quick & dirty performance test!

Test Commands

We’ll be using the most basic “dd” command as test bed. Just to measure the throughput and time. We won’t measure anything else…

Small IO

 

dd if=/dev/zero of=/root/testfile bs=512 count=1000 oflag=direct

Large IO

 

dd if=/dev/zero of=/root/testfile bs=1G count=1 oflag=direct

 

Raw Results

2015-12-31 08_27_10-Greenshot capture form

Where the peak is confirmed by our monitoring system ;

2015-12-31 08_32_50-Docker _ Datadog

 

Conclusion

For me the result between the first & the second test show a caching effect. So we should consider the first as “raw” where there is a difference. Anyhow, after that the performance seems (give or take) the same.

Anyhow, the biggest lesson here is ; always measure / test / validate your deployments. You should know exactly how they will perform under stress!

 

Addendum

After the initial testing, I also did a quick test with a mapped volume. To see if the overlay structure had an impact ;

  • Container : 11,6MB/s
  • Host : 11,5MB/s

Before your freak out… The mapped drive was a network share and not the same (ssd) disk as in the previous test. For me the, overlay does not seem to have a negative effect.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s