您好,登錄后才能下訂單哦!
比較MongoDB在公有云上的性能:AWS、Azure和Digital Ocean
英文原文:
http://blog.mongodirector.com/comparing-mongodb-performance-on-public-clouds-aws-azure-digital-ocean/
我們從MongoDirector.com得到的一個常見問題是MongoDB在各種公有云像AWS、Azure、Digital Ocean等的相對性能。每個云對于嚴重影響MongoDB性能的磁盤架構做了特定的選擇。
因此在你花費大量的時間和精力到一個特定的云之前,理解MongoDB在該云上的整體性能特征很重要。我們查找這個信息并沒有找到 -- 因此我們決定將它給你整合到一起作為我們的性能系列文章中的一部分。
基準平臺
針對這次測試,我們決定比較AWS、Azure和Digital Ocean。我們選擇了兩個不同的配置集合。以下表格總結了機器配置:
Provider | Region | MongoDirector Medium* | MongoDirector Large* (Cores/RAM/Disk/Prov IOPS) |
AWS | US East | 1/3.75GB/60GB/300 | 2/7.5GB/120GB/500 |
Azure | East US | 2/3.5GB/60GB/upto 2000 | 4/7GB/120GB/upto 4000 |
Digital Ocean | New York 3 | 2/4GB/25GB/SSD** | 4/8GB/35GB/SSD** |
*參考這里 “MongoDB Hosting”下面關于機器配置的詳細信息。
**Digital Ocean已直接附加上了SSD。
性能基準測試使用YCSB 負載 A(大量更新的負載)運行。在上個月我們在一篇非常詳細的文章中談論過YCSB、配置它和它的負載。
1. 所有的基準測試在一個單一配置下執行。
2. 對于所有配置,使用各種級別的服務器負載(基于大量的客戶端線程)插入5百萬條記錄。
3. 對于中等配置,負載A使用各種級別的服務器負載,以5百萬的操作總數,以默認值(50%更新,50%讀取)執行。
4. 對于大型配置,負載A使用各種級別的服務器負載,以1千萬的操作總數,以默認值(50%更新,50%讀取)執行。
結果
我們將基于在大量更新負載下的插入性能和吞吐量/延時特征來討論結果。
插入性能
中等實例
在中等配置下,對于插入5M記錄的吞吐量/延時(Throughput/latency)特征:
大型實例
在大型配置下,插入5M記錄的吞吐量/延時(Throughput/latency)特征:
更新性能
中等實例
在中等配置下,對于寫入/更新5M操作時吞吐量/延時(Throughput/latency)特征:
這個測試只對于Digital Ocean使用32個線程運行。AWS和Azure在16個線程時是水平線。然而Digital Ocean給人的印象是直到32個線程才線性增長。
大型實例
在大型配置下,對于寫入/更新10M操作的吞吐量/延時(Throughput/latency)特征:
整體分析
1. 如所期待的,Digital Ocean始終有著持續的高吞吐量/低延時特性,并在插入階段打敗了其他對手,從它本地SSD驅動獲取最大性能。有趣的是,即使它在讀取/更新階段運行良好,其他提供商給了一點點競爭,尤其當服務器負載增加時。顯然AWS/Azure是使用更高吞吐量的網絡存儲。
2. 為了從AWS磁盤獲得更好的性能,用戶可以使用更大的磁盤大小或者分配更高精度的IOPS。
3. 在中等實例,在插入和更新/讀取階段,Azure似乎一直比AWS做得更好。這是令人驚喜的。硬件是完全平等的。在大型實例,AWS性能明顯比Azure更好。
4. AWS和Azure隨著負載增加,延時降低都很好。Azure似乎有一個更好的延時降低曲線。
5. 另一個AWS性能有趣的方面是,它始終是多么的平:即使在對數刻度上也是優雅降低。
6. 基于延時數量,從負載的立場,對于中等和大型實例分別是8個和16個線程,看起來像是熱點區域。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。