云存儲之對象存儲性價比小談
相信大家對云存儲的優點都已經有所了解,例如云存儲支持按需使用,按需付費,不必承擔多余的開銷,也無需增加額外的硬件設施或配備專人負責維護。正因為有如此多的優點,市場上云存儲公司也如雨后春筍越來越多,但選擇太多有時候也意味著無從選擇。本文正是通過客觀的性能評測告訴大家該如何選擇。
一般云存儲會分幾種類型:對象存儲(冷、熱數據存儲)、塊存儲、表格存儲等,今天主要是評測的是對象存儲中的熱存儲,小編帶著大家一起通過性價比的對比方式來給各個云廠商排出名次。
本次入選的云廠商有:AWS,Azure,七牛云,華為云,阿里云等5個廠商,使用同樣的評測方法和工具,選取離存儲最近的同一供應商的虛擬機,測試環境同樣也選用離云存儲最近的區域,測試機帶寬1000Mbps,為了保證測試公平性不把測試機打爆,測試機的CPU利用率<50%,帶寬使用率在<70%,磁盤IO的讀寫吞吐<80MB/s,盡量讓測試機是在舒服的情況下工作。
測試工具和方法
本次性能測試使用開源軟件:apache-jmeter-2.13,測試方法是通過調用各個云廠商對外發布的***版本的SDK(java)來進行上傳下載操作,操作的對象大小分別是1KB、10KB、100KB、1MB、10MB、1GB,各個廠商的SDK詳細版本見列表,如下圖示是一個簡單流程圖。

A、測試性能指標:
1、Response Time(RT):響應時間,本次比較中RT第50百分位的響應時間。
2、Transactions Per Second(TPS):平均每秒處理的事務數。
B、選取的請求:Get(下載),Put(上傳)來測試其性能。
C、價格數據:官網價格(截止到2015年11月)。
性能數據結果
為了模擬真實的用戶場景,我們預先在各個云廠商存儲中分別壓入了接近3000萬個對象,涵蓋了6個不同尺寸大小的對象,分別是1KB、10KB、100KB、1MB、10MB、1GB,在做下載請求的時候,為了防止有讀緩存會影響性能,使用隨機獲取對象Key值,同時為了不讓測試機器成為瓶頸,僅使用3線程操作(1GB文件是1個線程),在每個線程中加入Thinking Time來保證測試機網絡帶寬不是瓶頸,測試機都選用離云存儲相同的區域,例如華為對象存儲是華北區,在華為云上購買的彈性云(測試機)也是華北區,阿里云的云存儲是北京區的,測試機(ECS)也選用北京區的,小編在測試AWS的時候,AWS的華北區僅僅是預覽版,所以選擇了AWS的俄勒岡,同樣測試機(EC2)選用俄勒岡區,以此類推,這樣的做法,是保證測試結果是準確和公正的。
下載(GET)文件性能結果:
結論:如果云服商能夠在上下行鏈路中做更多的優化(如減少數據在各節點間的轉發次數,盡量讓數據一次性的從存儲節點到達最前端的節點),那么大小文件的下載的響應速度就會表現更好。綜合從測試結果看來,下載1K,10K的小文件,AWS, Azure相對弱勢,而下載1M,10M的大文件,七牛云,阿里云表現更好。
響應時間(RT):

TPS:

上傳(Put)文件性能結果:
云服務廠商要在上傳方面達到好的效果,通常要做幾方面:1. 盡量減少數據的中轉環節;2. 數據寫入多個節點時,傳統做法是從寫入節點同時發到多個節點,但是如果從寫入節點先發給節點a,再從a發送給節點b,這樣就可以避免發送節點帶寬的限制。此外,本測試結果只針對服務端上傳到云存儲,更全面的獨立測試還可以圍繞客戶端進行(比如有些云服務廠商在客戶端上傳sdk中加入斷點續上傳功能以便讓用戶體驗更好。)
綜合從測試結果看來,寫1K,10K小文件響應時間中阿里云與七牛云有突出的表現,寫1M,10M,1G的大文件中,AWS性能表現也不錯。大文件中,Azure排名墊底。此外,Azure直接上傳1G的文件全部都超時失敗了,只能通過分片的方式上傳,由于測試工具的原因,這組數據僅限參考并不計入性價比。
響應時間(RT):

TPS:

價格數據
現在小編要模擬一個客戶真實的場景,來計算一下實際的發生費用,假定一個中小型客戶:客戶每月的存儲空間10T,每天下載流量100G/天,上傳和下載的請求次數50萬次/天,其中AWS和阿里云的存儲分為熱存儲和冷存儲,微軟的Azure的存儲計費方式有本地冗余和跨區域冗余和只讀跨地域冗余。為了統一跟其他廠商一致都選用熱存儲本地冗余的價格,小編從各個廠商的官網公布價格計算得到下面總價格,詳見下表,從總價格列表能看出:最貴的是Azure,***的是七牛,Azure幾乎是七牛的2.5倍價格。到這里幾乎大部分的客戶都有***個反應,七牛確實便宜,但是還是要從性能性價比的角度來真正評定。

(注:由于各廠商價格經常有浮動,以上價格選用2015年11月份的價格)
價格示意圖:

性價比
到了最重要的性價比的環節,我們要清楚知道每一塊錢到底能買多少性能,根據上面的測試結果和價格,這樣我們可以得到這樣一組計算公式:性價比=性能相對值/價格相對值,由于1G文件上傳有些廠商沒值,小編選用了1K小文件+10M大文件的上傳下載作為性能數據,以國內廠商阿里云的OSS性價比作為標桿,其性價比值設置為1,其他廠商來跟他對標情況。根據給出的測算公式,綜合性價比排名前三的是:七牛云,阿里云,AWS。 墊底的是跟AWS一樣來自海外的Azure。


(注:按照一個用戶購買云存儲一個月:存儲空間10T,流出流量100GB/天,Get和Put請求次數(均25萬次/天))
計算公式:性價比=性能相對值/價格相對值
性能相對值=(云存儲RT性能相對值/4*60%)+(云存儲TPS性能相對值/4*40%)
云存儲RT性能相對值=阿里云/AWS(GET1K文件(RT))+阿里云/AWS(PUT1K文件(RT))+阿里云/AWS(GET1M文件(RT)+阿里云/AWS(PUT1M文件(RT)
云存儲TPS性能相對值=AWS/阿里云(GET1K文件(TPS))+AWS/阿里云(PUT1K文件(TPS))+AWS/阿里云(GET1M文件(TPS))+AWS/阿里云(PUT1M文件(TPS))
價格相對值=AWS的云存儲價格/阿里云的云存儲價格
注:/ 符號為除以符號;用阿里云的值作絕對值,另以上RT性能越小越好,所以用阿里云/AWS,TPS性能越大越好,所以用AWS/阿里云;性能取值為50百分位。
結束語:
對于互聯網領域的初創企業和轉型互聯網+的傳統企業來說,選擇正確的云存儲的廠商是創業和轉型成功的基本保障。然而對待各種廠商宣傳的各種能力,我們要做到心里有桿秤,既不盲目聽從廠商性能宣傳,也不能僅僅從價格上來做選擇。
對于如何評價一個云廠商的好壞,性價比是一種很好選擇的方法,當然我們在做選擇的時候,還可以通過產品的易用性,廠商的服務質量和能力,以及產品安全能力和產品覆蓋區域來做更多的選擇。
原文鏈接:http://www.china-cloud.com/yunjishu/IAAS/cunchu/20151226_47711.html