比较MongoDB在公有云上的性能:AWS、Azure和Digital Ocean

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介:

英文原文:

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*               
(Cores/RAM/Disk/Prov IOPS)

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)特征:

clip_image002

 

大型实例

在大型配置下,插入5M记录的吞吐量/延时(Throughput/latency)特征:

clip_image004

 

更新性能


中等实例

在中等配置下,对于写入/更新5M操作时吞吐量/延时(Throughput/latency)特征:

clip_image006

这个测试只对于Digital Ocean使用32个线程运行。AWS和Azure在16个线程时是水平线。然而Digital Ocean给人的印象是直到32个线程才线性增长。

 

大型实例

在大型配置下,对于写入/更新10M操作的吞吐量/延时(Throughput/latency)特征:

clip_image008

 

整体分析


    1. 如所期待的,Digital Ocean始终有着持续的高吞吐量/低延时特性,并在插入阶段打败了其他对手,从它本地SSD驱动获取最大性能。有趣的是,即使它在读取/更新阶段运行良好,其他提供商给了一点点竞争,尤其当服务器负载增加时。显然AWS/Azure是使用更高吞吐量的网络存储。

    2. 为了从AWS磁盘获得更好的性能,用户可以使用更大的磁盘大小或者分配更高精度的IOPS。

    3. 在中等实例,在插入和更新/读取阶段,Azure似乎一直比AWS做得更好。这是令人惊喜的。硬件是完全平等的。在大型实例,AWS性能明显比Azure更好。

    4. AWS和Azure随着负载增加,延时降低都很好。Azure似乎有一个更好的延时降低曲线。

    5. 另一个AWS性能有趣的方面是,它始终是多么的平:即使在对数刻度上也是优雅降低。

    6. 基于延时数量,从负载的立场,对于中等和大型实例分别是8个和16个线程,看起来像是热点区域。















本文转自UltraSQL51CTO博客,原文链接:http://blog.51cto.com/ultrasql/1739593 ,如需转载请自行联系原作者




相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
SQL 缓存 运维
MongoDB的性能问题之MongoDB 磁盘IO高问题
MongoDB的性能问题之MongoDB 磁盘IO高问题
|
17天前
|
监控 NoSQL 测试技术
MongoDB性能最佳实践:如何制定更有效的基准测试?
感谢你与我们一起走过这段MongoDB性能最佳实践之旅,希望你能从中获取一些有用的信息
1594 2
|
2月前
|
存储 缓存 NoSQL
|
2月前
|
缓存 NoSQL 关系型数据库
|
5月前
|
缓存 NoSQL MongoDB
MongoDB数据库查询性能提高40倍?
MongoDB数据库查询性能提高40倍?
102 0
|
6月前
|
JSON NoSQL MongoDB
MongoDB数据库查询性能提高40倍
MongoDB数据库查询性能提高40倍
MongoDB数据库查询性能提高40倍
|
9月前
|
存储 NoSQL 数据建模
MongoDB性能系列最佳实践-数据建模与内存优化
帮助用户在多个关键方面实现规模化性能优化
MongoDB性能系列最佳实践-数据建模与内存优化
|
9月前
|
存储 NoSQL 分布式数据库
MongoDB性能系列最佳实践-Sharding
MongoDB将会推出一系列介绍MongoDB性能最佳实践的文章,旨在帮助用户在多个关键方面实现规模化性能优化。
MongoDB性能系列最佳实践-Sharding
|
9月前
|
存储 NoSQL 数据可视化
MongoDB性能系列最佳实践-Index
MongoDB将会推出一系列介绍MongoDB性能最佳实践的文章,旨在帮助用户在多个关键方面实现规模化性能优化。
MongoDB性能系列最佳实践-Index
|
NoSQL MongoDB 数据库管理