摘要:兩大產生云硬盤預期性能對比上圖顯示,騰訊云高效云盤的預期性能遙遙領先于阿里云,其中最低的吞吐量都比阿里云的峰值要高。
上個月,筆者對國內兩大云廠商(阿里云和騰訊云)的云服務器、云數據庫和云存儲三種產品做了性能評測,算是對兩家的部分計算和存儲產品(數據庫也可視作一種存儲形式)做了簡要對比。雖然評測文章在 V2EX 等社區的反饋還不錯,但確實還存在不少缺失。除了不好評測的售后服務等指標外,還缺少了對其他使用更為普遍的云存儲產品。
因此,筆者近期抽空完善《云計算產品性能測試指南》,新加入了對兩種云存儲產品(云盤)的性能和價格對比。本次測試總計耗時 20 多天,測試的強度和時間都非常充分,本文將記錄此次測試的過程和對比結果。
哪兩種云盤?云存儲類別下,目前兩大云產商提供了以下產品:
塊存儲(阿里云、騰訊云)
文件存儲(阿里云)
對象存儲(阿里云、騰訊云)
內容分發網絡(阿里云、騰訊云)
表格存儲(阿里云)
歸檔存儲(阿里云)
可以看出,阿里云的云存儲產品類別更為豐富,云計算先行者的優勢突出。
在上述六種產品中,筆者上次已經對比過對象存儲。內容分發網絡(CDN)測試起來花的時間又特別長,進行有意義的比較需要的數據特別大,而且目前沒找到自動化的工具,因此這次不考慮測試 CDN(歡迎推薦可以自動化測試 CDN 性能的工具)。
那么剩下的兩家均提供的產品,就是塊存儲(Block Storage)了。塊存儲,簡單來說就是提供了塊設備存儲的接口,一個硬盤就是一個塊設備。在云產商提供的產品中,所謂的普通云盤、高效云盤、SSD 云盤,都是塊存儲設備。
如果你對存儲類型不太熟悉,建議閱讀以下文章:
從OpenStack的角度看塊存儲的世界
三種存儲類型比較-文件、塊、對象存儲
知乎話題:塊存儲、文件存儲、對象存儲這三者的本質差別是什么?
上一篇評測文章中,其實也對普通云盤的性能進行了對比,但包含在云服務器性能測試中。對于選擇普通云盤做對比,有的讀者也提出了異議。
確實,企業用戶一般不會用服務器的本地存儲保持核心數據,因為本地磁盤的數據遷移困難,而自建 raid5 磁盤陣列的數據持久性頁不高,因此大多采用 SSD 云盤或高效云盤等分布式存儲成為主流選擇。一線云廠商比拼的也主要是分布式塊存儲,如 AWS 的 EBS 就是一種分布式塊存儲設備。
為了較為完整地比較兩大廠商的塊存儲產品,筆者近期對兩家的高效云盤和 SSD 云盤進行了壓測,算是對上一篇的補充。期間犯了不少錯,多花了不少冤枉錢,不過總算最終得出了比較可信、直觀的數據。
廠商預期的性能在介紹測試詳情之前,先來看一看廠商對自家產品的描述。
在各自的產品介紹頁面(騰訊云、阿里云),均給出了詳細的性能指標及具體的計算公式。
阿里云:
高效云盤
IOPS:min(1000 + 6 * 容量, 3000)
吞吐量:min(50 + size * 0.1, 80)
訪問時延:1-3ms
SSD 云盤
IOPS:min(30 * 容量, 20000)
吞吐量:min(50 + size * 0.5, 256)
訪問時延:1-3ms
騰訊云:
高效云盤
IOPS:min(1500 + 容量 * 8, 4500)
吞吐量:min(75 + size * 0.147, 130)
訪問時延:< 3ms
SSD 云盤
IOPS:min(容量 * 24, 2400)
吞吐量:min(150 + (容量 - 250) * 0.147, 260)
訪問時延:< 3ms
其中:
IOPS:每秒讀寫(I/O)操作的次數,數值越高越好。
吞吐量:一般用MBPS,每秒傳輸的MB字節數來衡量,下文用英文 Throughput 替代。
訪問時延:訪問時延,完成一個 I/O 請求所需的時間,下文用英文 Latency 替代。
上述三項指標中,兩家只給出了 Latency 的數值范圍。不過,這個可以說是最重要的性能指標。其他指標不變的情況下,Latency 為 1ms 的性能是 3ms 的 3 倍。
另外,從給出的計算公式中,無法直觀地比較 IOPS、TP。因此,筆者用繪制了云盤性能與容量(volume)的關系圖。
上圖中,紅色虛線為騰訊云云盤,藍色實線為阿里云云盤。
由于騰訊云的云盤最大容量為 4000GB,而阿里云為 32678GB,但是為了方便查看,只繪制出了容量在 [0, 4000] 范圍內的性能數據。另外,在圖中以 Hybrid 代稱高效云盤,下文同。
從上圖來看:
騰訊云高效云盤的預期性能遙遙領先于阿里云,尤其是最低吞吐量都比阿里云的峰值要高;
但是在 SSD 云盤方面,阿里云的預期性能優勢比較大,只有在容量 1TB 以上時才低于對手。
不過,以上只是廠商預期的性能數據,不代表產品的真實性能就是如此。產品實際表現如何,與預期性能差距有多大,還需要我們親自測試、使用才可得知。
測試準備工作在開始測試之前,筆者在兩家產商分別購買了測試服務器及云盤。
測試所使用的虛擬機配置為:
CPU:4核 Intel Xeon
內存:4GB DDR3
操作系統:Ubuntu 14.04 64位。
選取的測試云盤如下:
高效云盤:50GB、400GB
SSD 云盤:250GB、500GB
測試阿里云的 500GB SSD 云盤時碰到了兩個大杯具,首先是余額不足導致測試程序中斷,一切重來。。第二個杯具和 SSD 云盤的性能有關,具體下文中會提到。。。
下文中,筆者不會具體介紹測試步驟,只說明執行了哪些測試及測試結果,具體步驟請看此前在 Github 上分享的項目:CloudTesting/test_cbs。
執行哪些測試一般來說,塊存儲性能主要看 IOPS、Throughput 和 Latency三個指標,廠商也大多提供這三個指標的峰值作為購買參考。
上一篇評測中,筆者就是使用 fio 對普通云盤進行測試,對比了三個指標的差異。不過現在回過頭來看,測試的壓力還不夠大,使用的塊大小、隊列深度還不夠全,雖然最終結果差異或許并不會太大。
因此,這次針對高效云盤(HDD+SSD)和 SSD 云盤的測試,筆者將根據 SNIA 發布的企業級SSD評測規范(Solid State Storage Performance Test Specification Enterprise v1.1)進行,以下簡稱該規范為 PTS 。
SNIA 是存儲網絡行業協會(Storage Networking Industry Association,SNIA)的簡稱,這是一個由廠商和大學成立的行業組織,致力于開發和推廣存儲系統標準。
除了 IOPS、Throughput 和 Latency 三項基礎測試外,PTS 還包含了以下五種測試:
Write Saturation (WSAT):持續應用工作負載,測試性能隨著時間如何變化。
Demand Intensity Response Time Histograms (DIRTH)
Cross Stimulus Recovery (XSR)
Host Idle Recovery (HIR):測試宿主機閑置時間對性能恢復的影響。
Enterprise Composite Workload (ECW)
SNIA 官方有提供測試服務,但是收費,而且也不適用于云存儲設備。
因此,筆者選擇了一家云計算公司根據 PTS 規范實現的自動化測試庫(代碼地址:https://github.com/cloudharmony/block-storage),其中包含了 IOPS、TP、Latency、WSAT 和 HIR 五類測試,其他的沒有實現。
SSD 云盤的測試中沒有 WSAT 和 HIR 兩項,具體原因后面會提到。
注意,PTS 測試中所有 fio 命令的隊列深度均為 64。具體測試細節請看官方提供的 PDF 文件。
PTS 測試耗時長根據 PTS 規范,每項 SSD 性能測試需要經過1、凈化、2、準備工作負載、3、進入穩態、4、測試等四個環節,因此整個測試過程用時非常長,而且云盤容量越大,耗時越長。筆者在測試時,平均每塊云盤大概花了 2 天的時間。由于各種原因,這次至少買了 10 塊云盤做測試,因此也就有了標題中“ 20 天持續壓測”的說法。**
以騰訊云 500G SSD 云盤的測試時間為例說明:
此次測試采用的是第三方提供的自動化測試庫,整個步驟都是可重復的,對測試數據有疑問的同學可自行驗證。在這里說明下測試所需時間,是為了提示大家啟動測試程序后該干嘛就干嘛,同時保證賬戶中有充足的余額(尤其是后者)。
在介紹測試結果之前,說明一下對兩家廠商測試過程的差異(云盤均為直接格式化,未分區)。
騰訊云由于不支持多帶帶購買按量付費的服務器,因此開了 4 臺 VM,每臺配一種測試云盤。
阿里云支持多帶帶按量購買云盤,因此只開了 2 臺 VM,每臺掛載 2 塊云盤,測試時針對每個云盤多帶帶啟動一個測試程序。
性能測試數據經過漫長的時間,上周末終于完成了對 6 塊云盤的 IOPS、TP、Latency、WSAT、HIR 五項測試。
測試數據大約 190MB,下載地址為:https://pan.baidu.com/s/1i5BJZCD,提取碼:e2xd。其中,文件夾的命名規律為:廠商_云盤類型_容量。除了 aliyun_ssd_500x 和 aliyun_ssd_250x 外,每個文件夾下均有一個 report.pdf 文件,為測試程序自動生成,里面包含了測試結果、數據和圖表。
另外,筆者用 Highcharts 制作了一些可交互圖表,可用來查看匯總后的各項數據。地址如下:http://www.codingpy.com/specials/cbs_test/。
阿里云的一個大坑筆者在本文撰寫快要結束時,看到阿里云 SSD 云盤的性能比預期的差很多,回頭去調查原因。這才猛然發現阿里云 SSD云盤必須搭配 I/O 優化實例才能給發揮最大性能。當時就想破口大罵。。。
踩過這個坑的朋友不知道有多少?
因此,之前的 SSD 云盤數據(即 aliyun_ssd_500x 和 aliyun_ssd_250x 兩個文件夾下的數據)就不具備可比性了。筆者只好重開 ECS 進行測試,為了節約時間,SSD 云盤將只測試 IOPS、Throughput、Latency 這三個基礎指標。
本文先對比高效云盤,重新測試完后,過幾日再與大家分享具體的 SSD 云盤性能對比。
高效云盤性能對比下面我們來看看高效云盤的測試性能,與產商預期的性能值之間是否存在差異,差異又有多大。
先來回顧一下廠商預期的性能,請看下圖左邊部分。
上圖顯示,騰訊云高效云盤的預期性能遙遙領先于阿里云,其中最低的吞吐量都比阿里云的峰值要高。
但是真實測試數據如何?請看下面的測試結果。
基礎指標測試首先是 50GB 容量的 IOPS、Throughput、Latency 三項指標的數據(可點擊圖片查看大圖,或查看交互式圖表):
400GB 容量的性能對比(可點擊圖片查看大圖,或查看交互式圖表):
圖注:RW Ratio 指的是 I/O 操作中的讀寫比例,0/100 表示順序寫, 100/0 表示順序讀。
從上述圖表對比來看, 可以得出結論1:
在 50GB、400GB 兩個容量級別上,騰訊云高效云盤的各項性能指標表現均優于阿里云,而且優勢也比較明顯。
接下來,我們比較一下測試值與預期值之間的差異。由于預期值都是理論情況下的峰值,我們從測試數據中提取出各自的峰值。
看完上面的數據,你至少會有這兩個疑惑:
騰訊云的測試峰值怎么接近預期值的兩倍?
阿里云 400GB 高效云盤的延遲怎么那么高,離預期的 1-3ms 差距很大?是不是數據有誤?
第一個疑惑,騰訊云兩個容量的測試峰值均為預期值的兩倍。產品首頁中沒有直接說明,只能去翻產品文檔,最終在 CBS 使用約束頁面中找到了一段解釋:
產品文檔中承諾的IO性能,如1TB的SSD云硬盤,隨機IOPS能達到24000IOPS。含義是讀寫可同時達到24000IOPS,4KB/8KB的 IO都可做到,16KB的IO大小,則無法做到24000(由于吞吐已經達到了260MB/s的限制)。
簡單來說,就是騰訊云高效云盤的讀寫操作可同時達到預期性能峰值(數據塊 16KB 以下)。這樣,騰訊云的數據就可以解釋的通了。
筆者選擇的測試峰值是數據塊 512b、50/50 讀寫比例下的數據,這時讀寫均達到了預期的 IOPS 峰值,總 IOPS 接近預期峰值的 2 倍。而順序讀、順序寫的值都接近預期的峰值。
而阿里云方面,讀寫無法同時達到預期性能峰值。
第二個疑惑,阿里云 50GB 高效云盤的 Latency 在正常范圍,怎么 400GB 的就超標了?筆者一開始還以為數據錯了,為此重開了虛擬機,用 ioping 做了簡單的比對。結果如下圖:
重新測試之后,筆者確信了此前自動測試庫跑出的數據應該是沒問題的。至于高時延背后的原因,可能是“鄰居”比較多、IO 操作比較活躍吧。 Latency 的自動測試大概跑了 4 個多小時,重新測試時性能也沒有變化,阿里云這個算不算違反了服務協議(SLA)呢?
解決上面的疑惑之后, 我們可以得出以下結論:
結論2:騰訊云達到了預期的性能;阿里云部分沒有達到,400GB 容量的時延過高。
結論3:騰訊云高效云盤的時延在 1ms 以下,IOPS、吞吐量的優勢更加突出。
WSAT、HIR下面來看 WSAT 和 HIR 測試的情況。上面提到,WSAT測試是指在持續應用工作負載,測試性能隨著時間如何變化。
WSAT 自動測試最終得出的是一段時間內,IOPS 的平均值,結果如下:
上述數據,與兩家廠商預期的峰值非常接近,說明兩家的高效云盤能夠長時間達到 IOPS 性能峰值。但是這里看不出性能如何隨時間變化,必須從生成的 PDF 中查找,筆者截圖如下:
從上述 4 張趨勢圖來看,可以得出結論4:
兩家高效云盤的 IOPS 表現均比較穩定,幾乎呈一條直線,只有阿里云的 400GB 云盤有些略微波動。
最后來比較 HIR 測試的結果。HIR 主要測試宿主機閑置時間對性能恢復的影響。
從上述 4 張趨勢圖來看,可以得出結論5:
容量越大,似乎閑置時間對性能恢復的影響越明顯;阿里云 400GB 高效云盤的性能波動受閑置時間影響較明顯。
綜合上述五項測試的結果,可以認為騰訊云高效云盤的綜合性能應該是阿里云高效云盤的2倍以上(結論6)。
加入價格因素延續上一篇的風格,在比較完性能指標之后, 我們再加入價格因素。
上圖中,騰訊云高效云盤按量計費的價格,為根據官方產品頁面給出的定價計算,包年包月價格為多帶帶購買云盤時系統顯示價格;阿里云高效云盤的價格根據其給出的費用規則計算。這里說明一點,騰訊云在多帶帶購買云盤時,還只有包年包月這種模式,不夠靈活。
從上圖對比來看:
結論7:騰訊云和阿里云的包年包月價格相同;
結論8:騰訊云的按量計費價格比阿里云貴,約為 1.8 倍;
結論9:阿里云按量計費與包年包月的價格相差很小。
一般來說,數據盤中存儲的多為持久性數據,以按量付費方式購買的企業用戶應該并不多。所以,在包年包月模式下,騰訊云高效云盤的性價比非常高。
不過由于阿里云兩種模式之間價格差異小,使得用戶在云盤使用方式上更加靈活。在筆者看來,按量計費和包年包月的核心并不在如何收費,而在于云計算產品的使用方式。價格差會使用戶傾向于以某一種方式使用產品,而不是根據有業務情況自由選擇。
結語上文中,我們分別從 IOPS、Throughput、Latency、WSAT、HIR 五項測試指標,對騰訊云、阿里云的 50GB、400GB 容量的高效云盤進行了性能對比。
經過對測試數據進行分析,筆者主要得出了以下結論:
騰訊云高效云盤的各項基礎性能指標均優于阿里云,且優勢明顯;
騰訊云高效云盤達到了預期的性能,而阿里云部分云盤沒有達到,400GB 容量的時延過高;
阿里云大容量高效云盤的 IOPS 性能受宿主機閑置影響較大;
包年包月模式下,騰訊云高效云盤的性價比非常高;
阿里云高效云盤不同計費模式下費用差別不大,選擇時靈活性更高。
如果你正在考慮采購這兩家產商的高效云盤,希望本文對你有幫助。如果你考慮的廠商不是騰訊云或阿里云,可以參考本文中使用的自動測試庫進行全面測試。不過別忘了,要想獲得最大的云盤性能,則必須購買相應廠商的云服務器,否則云應用的性能反而可能下降。關于如何測試云服務器的性能,請看筆者上一篇評測。
下一篇筆者將對比騰訊云和阿里云 SSD 云盤的性能。
參考鏈接云存儲的四大優勢
從OpenStack的角度看塊存儲的世界
SNIA SSS Performance Test Specification (PTS) Testing Service
網絡存儲協會發布企業級SSD評測規范
阿里云:云盤參數和性能測試方法
阿里云:云盤的特點和應用場景
騰訊云:如何衡量云硬盤的性能
騰訊云:CBS 應用場景
騰訊云:CBS 產品分類及對比
塊存儲測試套件
Key storage performance metrics for virtual environments
Pro Tips For Storage Performance Testing
Understanding IOPS, Latency and Storage Performance
Amazon EBS 卷類型
AWS系列之三 使用EBS
AWS 存儲測試數據
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/25164.html
摘要:上周,一篇云主機測評文章云服務器哪家強阿里云騰訊云華為云深度評測在朋友圈引發了熱議。機型選擇通用實例阿里云通用平衡增強型,華為云通用計算增強型,以及騰訊云標準型。上周,一篇云主機測評文章《云服務器哪家強?AWS、Azure、阿里云、騰訊云、華為云深度評測》在朋友圈引發了熱議。然而其中,云主機性能一直頗為優秀,甚至在多次其它公開測評中位列第一的UCloud卻在此次測評中缺席,因此,測評的結果不...
摘要:今天,阿里數據庫事業部研究員張瑞,將為你講述雙數據庫技術不為人知的故事。這十年,阿里巴巴數據庫團隊一直有一個使命推動中國數據庫技術變革。 第十個雙11即將來臨之際,阿里技術推出《十年牧碼記》系列,邀請參與歷年雙11備戰的核心技術大牛,一起回顧阿里技術的變遷。 今天,阿里數據庫事業部研究員張瑞,將為你講述雙11數據庫技術不為人知的故事。在零點交易數字一次次提升的背后,既是數據庫技術的一次...
摘要:工欲善其事,必先利其器,我們拿什么工具來壓測呢我們做了很多前期調研和論證,最終決定基于開發有贊自己的分布式全鏈路壓測引擎。 一年以前,有贊準備在雙十一到來之前對系統進行一次性能摸底,以便提前發現并解決系統潛在性能問題,好讓系統在雙十一期間可以從容應對劇增的流量。工欲善其事,必先利其器,我們拿什么工具來壓測呢?我們做了很多前期調研和論證,最終決定基于 Gatling 開發有贊自己的分布式...
摘要:概述微軟雅黑本文主要描述服務端系統性能服務端高性能部署方案及優化措施服務端系統持續優化及升級策略。部署優化微軟雅黑使用,較之前的版本性能提升一倍以上。微軟雅黑開啟,生產環境應該開啟,性能會有巨大提升。概述 ????????本文主要描述ThinkSNS Plus服務端系統性能、服務端高性能部署方案及優化措施、服務端系統持續優化及升級策略。本文未涉及前端(PC站點、H5站點、Android、IO...
閱讀 3430·2021-10-14 09:42
閱讀 2717·2021-09-08 10:44
閱讀 1299·2021-09-02 10:18
閱讀 3599·2021-08-30 09:43
閱讀 2793·2021-07-29 13:49
閱讀 3718·2019-08-29 17:02
閱讀 1575·2019-08-29 15:09
閱讀 1034·2019-08-29 11:01