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

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:

英文原文:

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
相关文章
|
1月前
|
存储 关系型数据库 MySQL
四种数据库对比MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景
四种数据库对比 MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景
|
3月前
|
JSON NoSQL MongoDB
MongoDB Schema设计实战指南:优化数据结构,提升查询性能与数据一致性
【8月更文挑战第24天】MongoDB是一款领先的NoSQL数据库,其灵活的文档模型突破了传统关系型数据库的限制。它允许自定义数据结构,适应多样化的数据需求。设计MongoDB的Schema时需考虑数据访问模式、一致性需求及性能因素。设计原则强调简洁性、查询优化与合理使用索引。例如,在构建博客系统时,可以通过精心设计文章和用户的集合结构来提高查询效率并确保数据一致性。正确设计能够充分发挥MongoDB的优势,实现高效的数据管理。
64 3
|
3月前
|
安全 C# 数据安全/隐私保护
WPF安全加固全攻略:从数据绑定到网络通信,多维度防范让你的应用固若金汤,抵御各类攻击
【8月更文挑战第31天】安全性是WPF应用程序开发中不可或缺的一部分。本文从技术角度探讨了WPF应用面临的多种安全威胁及防护措施。通过严格验证绑定数据、限制资源加载来源、实施基于角色的权限管理和使用加密技术保障网络通信安全,可有效提升应用安全性,增强用户信任。例如,使用HTML编码防止XSS攻击、检查资源签名确保其可信度、定义安全策略限制文件访问权限,以及采用HTTPS和加密算法保护数据传输。这些措施有助于全面保障WPF应用的安全性。
52 0
|
5月前
|
NoSQL 测试技术 MongoDB
使用同步和异步方式更新插入MongoDB数据的性能对比
在这篇文章中,我将探讨如何使用同步和异步方式插入数据到MongoDB,并对两种方式的性能进行对比。并将通过Python中的 pymongo 和 motor 库分别实现同步和异步的数据插入,并进行测试和分析。
|
6月前
|
NoSQL 测试技术 MongoDB
【MongoDB 专栏】MongoDB 的性能基准测试与评估
【5月更文挑战第11天】MongoDB的性能基准测试对于优化至关重要,涉及数据读写速度、查询响应时间及吞吐量等指标。测试应明确目标和范围,选择合适的工具,考虑数据模型、索引、查询优化和系统配置等因素。性能评估需关注读写吞吐量、响应时间和资源利用率。通过多次测试、逐步增加负载和对比其他系统,识别性能瓶颈并持续优化。随着技术发展,测试方法和工具将持续创新,以应对复杂性能挑战。
284 3
【MongoDB 专栏】MongoDB 的性能基准测试与评估
|
6月前
|
监控 NoSQL MongoDB
【MongoDB 专栏】MongoDB 的监控与性能调优
【5月更文挑战第11天】在数字化时代,MongoDB作为流行的非关系型数据库,其监控和性能调优至关重要。监控能实时了解数据库运行状态,预防性能问题,评估系统健康。关键监控指标包括系统资源、查询性能、连接数和数据存储量。常用工具如`mongostat`、`mongotop`,以及Prometheus、Grafana等。性能调优涉及索引、查询优化、数据模型调整、配置修改及分片复制。通过持续监控和调优,可确保MongoDB高效稳定运行,适应业务发展需求。
210 1
【MongoDB 专栏】MongoDB 的监控与性能调优
|
5月前
|
NoSQL BI MongoDB
深入理解 MongoDB 条件操作符:优化查询、精准筛选、提升性能
深入理解 MongoDB 条件操作符:优化查询、精准筛选、提升性能
126 1
|
5月前
|
存储 监控 NoSQL
MongoDB 覆盖索引查询:提升性能的完整指南
MongoDB 覆盖索引查询:提升性能的完整指南
|
5月前
|
存储 NoSQL 数据管理
MongoDB关系处理:优化数据管理、提升性能的最佳实践
MongoDB关系处理:优化数据管理、提升性能的最佳实践
|
5月前
|
NoSQL MongoDB 数据库
MongoDB索引:加速查询、提升性能的利器
MongoDB索引:加速查询、提升性能的利器