天天看點

Docker IO開銷評測

本文講的是<b>Docker IO開銷評測</b>,【編者的話】本文作者Vadim Tkachenko是Percona公司開發團隊負責人。他是固态存儲方面的專家,幫助了很多軟硬體提供商在MySQL市場上取得了成功。

這篇文章是系列文章中的一篇,對Docker中的IO開銷進行了評測。

在跑了幾次測試以後,好像沒有出現IO開銷(劇透警告)。但是,我仍然認為很有必要了解Docker搭配資料卷(data volume)的幾種不同方式。Docker的設計初衷是提供短生命周期的容器,但是這樣對資料并不友好,畢竟我們不想丢掉資料。

是以,第一種模式是在Docker容器内建立資料。這是預設的方式:

第二種模式是使用外部資料卷,我們需要用<code>-v /data/flash/d1/:/var/lib/mysql</code>代替資料卷。完整的指令是:

最終,第三個模式是使用資料卷容器。在這個例子裡,我建立了一個傀儡容器:

在停止了<code>ps13-data-volume</code>容器之後,我們可以從<code>ps13-data-volume</code>的資料卷再啟動一個:

我從讀密集以及寫密集兩個次元對比了所有這些模式以及裸機模式下的IO負載,裸機模式是直接mount到sysbench的。作為參考,sysbench的指令是:

我不打算展示最終的數值以及圖表,因為不管是在Docker中的任何模式,還是裸機IO模式,結果都是一樣的。是以,我可以很自信地說在上文中描述的任何一種Docker資料卷模式中都沒有IO開銷。

在下一個實驗中,我打算評測在多主機網絡環境下Docker容器是否有額外開銷。

====================================================================

譯者介紹

原文釋出時間為:2016-03-09

本文作者:iT2afL0rd 

本文來自雲栖社群合作夥伴DockerOne,了解相關資訊可以關注DockerOne。

原文标題:Docker IO開銷評測