MONGODB数据架构





升级解决.计划



发现问题 



应用server用户数的突然涌入,创建server反应慢 





检查server,我发现,每次反应非常慢,至30ops 





检查过程 





.发现数据库查询缓慢 

.检查索引 

.检查内存占.用量 

.检查TCP连接









对照測试1 





.硬件配置: 

.client: 

.阿.里云,2cpu,2g内存。windows2008 

.服务端: 

.阿.里云,router:4cpu,4g内存。centos6.5 64位 

.阿.里云。mongod:2cpu,8g内存,centos6.5 64位 

.1.对router进.行測试。每秒200qps。

.2.对mongod进.行測试,每秒500qps。 

.小结:使.用sharding架构,查询会.比直接对单台mongo查询慢。









对照測试2 





.硬件配置: 

.client: 

.阿.里云,2cpu,2.5g内存,windows2008 

.阿.里云,2cpu。2.0g内存,windows2008 

.服务端: 

.阿.里云。mongod:2cpu。2.5g内存,windows2008 

.1.在本地2cpu,2.5g内存。windows2008进.行測试。查询速度达到3000qps,甚至有时候能突破5000qps。 

.2.在2cpu,2.0g内存,windows2008对mongod进.行測试,查询速度500qps。 

.小结:tcp对..网络有非常.大的影响。

对照測试3 





.硬件配置: 

.client: 

.物理机,2cpu,4.0g内存,windows2008 

.服务端: 

.物理机,mongod:2cpu,4.0g内存,centos6.5 64位 

.物理机,router:2cpu。4.0g内存。centos6.5 64位 

.1.对mongod进.行測试。查询速度1000qps。

.2.对router进.行測试。查询速度500qps。 

.小结:阿.里云存在.一定的限制。使得速度有上限。









对照測试4 





.硬件配置: 

.client: 

. ucloud,2cpu。4.0g内存,windows2008 

.服务端: 

. ucloud,mongod:2cpu,4.0g内存。centos6.5 64位 

. ucloud,router:2cpu。4.0g内存,centos6.5 64位 

.1.对mongod进.行測试,查询速度2000qps。 

.2.对router进.行測试,查询速度1000qps。 

.小结:ucloud.比阿.里云的机器性能好。









对照測试5 





.硬件配置: 

.client: 

. ucloud,16cpu,64.0g内存,windows2008 

.服务端: 

. ucloud,mongod:16cpu,64.0g内存,centos6.5 64位 

. ucloud。router:16cpu,64.0g内存,centos6.5 64位 

.1.对mongod进.行測试,查询速度13000qps。

.2.对router进.行測试,查询速度10000qps。 

.小结:至此最终找到问题根结,clientcpu核数决定mongodb查询速度。









结论 





1.阿.里云的云主机有做某些限制,导致.不管怎样设定系统。数据库的配置,都.无法突破.一个数量级的qps。

2.clientcpu核数决定mongodb查询速度。 

3.tcp的限制通过.走内..网能够避免。 

4.linux操作系统胜过windows。

因此mongodb架构在linux上.比架构在windows上更好。





最新架构









最新架构









极限性能測试 





.以上.面最新架构进.行測试: 

.打开4个iisclient,同一时候对router进.行查询。 

router能够达到每秒20000次查询。

换成业务对照。即每秒能够应付2000个人。









性能结论 





.为了保证线上业务的正常运.行,数据库所在的server须要8cpu,16g内存。 

.为了保证备份的完整性。因此正确slave数据库备份,正确router备用。备份保留30天。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

MongoDB---性能优化---(1)的更多相关文章

  1. MongoDB 性能优化五个简单步骤

    MongoDB 一直是最流行的 NoSQL,而根据 DB-Engines Ranking 最新的排行,时下 MongoDB 已经击败 PostgreSQL 跃居数据库总排行的第四位,仅次于 Oracl ...

  2. mongodb可以通过profile来监控数据 (mongodb性能优化)

    mongodb可以通过profile来监控数据 (mongodb性能优化)   开启 Profiling  功能 ,对慢查询进行优化: mongodb可以通过profile来监控数据,进行优化. 查看 ...

  3. MongoDB性能优化

    一.索引 MongoDB 提供了多样性的索引支持,索引信息被保存在system.indexes 中,且默认总是为_id创建索引,它的索引使用基本和MySQL 等关系型数据库一样.其实可以这样说说,索引 ...

  4. MongoDB性能优化指南

    一.索引 MongoDB 提供了多样性的索引支持,索引信息被保存在system.indexes 中,且默认总是为_id创建索引,它的索引使用基本和MySQL 等关系型数据库一样.其实可以这样说说,索引 ...

  5. 开发高性能的MongoDB应用—浅谈MongoDB性能优化(转)

    出处:http://www.cnblogs.com/mokafamily/p/4102829.html 性能与用户量 “如何能让软件拥有更高的性能?”,我想这是一个大部分开发者都思考过的问题.性能往往 ...

  6. 开发高性能的MongoDB应用—浅谈MongoDB性能优化

    关联文章索引: 大数据时代的数据存储,非关系型数据库MongoDB 性能与用户量 “如何能让软件拥有更高的性能?”,我想这是一个大部分开发者都思考过的问题.性能往往决定了一个软件的质量,如果你开发的是 ...

  7. 【MongoDB】MongoDB 性能优化 - BI查询聚合

    在BI服务中通过查询聚合语句分析定位慢查询/聚合分析,小结如下: 慢查询定位: 通过Profile分析慢查询 对于查询优化: 通过添加相应索引提升查询速度: 对于聚合大数据方案: 首先要说明的一个问题 ...

  8. Liunx下Mysql,MongoDB性能优化的配置

    场景 这几天在赶十一上线的项目,但是突然发现接口性能不好,高并发支持不住.又不想改代码,就在数据库层面进行优化. Mysql 分区:项目中有对40万条的数据进行时间查询的要求,就算对DateTime建 ...

  9. MongoDB 性能优化

    Read Preferences/读写分离 有时候为了考虑应用程序的性能或响应性,为了提高读取操作的吞吐率,一个常见的措施就是进行读写分离,MongoDB副本集对读写分离的支持是通过Read Pref ...

  10. MongoDB实战性能优化

    1. 性能优化分类 mongodb性能优化分为软件层面和操作系统层面. 软件层面,一般通过修改mongodb软件配置参数来达到,这个需要非常熟悉mongodb里面的各种配置参数: 而操作系统层面,相对 ...

随机推荐

  1. spring mvc实现ajax 分页

    使用到的技术: ·spring 3 mvc ·json ·jquery ·java ·mysql 首先,要了解如何在spring mvc中使用json. 以下主要从Dao和View及Controlle ...

  2. pkg_utility

    创建包名: CREATE OR REPLACE PACKAGE BODY PKG_UTILITY AS --字符串转换到索引表 PROCEDURE STR_TO_LIST(PI_STR IN VARC ...

  3. USACO Palindromic Squares 【STL__string_的应用】

    这里有个讲解 string 用法非常详细的博文:https://www.byvoid.com/zhs/blog/cpp-string 题目意思很简单啦,就是找回文 使用string可以高速A过 Sou ...

  4. BAAS

    http://blogs.embarcadero.com/sarinadupont/category/baas-tutorials/?cid=701G0000000vH0A&elq=51f98 ...

  5. QT全平台设置图标,全平台静态编译 good

    1.  概述 当我们用QT写好了一个软件,要把你的程序分享出去的时候,不可能把编译的目录拷贝给别人去运行.编译好的程序应该是一个主程序,加一些资源文件,再加一些动态链接库,高大上一些的还可以做一个安装 ...

  6. Android学习笔记:ListView简单应用--显示文字列表

    在activity中的编写如下代码: final List<String> items = new ArrayList<String>(); //设置要显示的数据,这里因为是例 ...

  7. 【HTTP 2】启用 HTTP 2(Starting HTTP/2)

    [HTTP 2]启用 HTTP 2(Starting HTTP/2) 四月 1, 2016 ~ LITECODES 前情提要 在上一篇文章<[HTTP 2]HTTP/2 协议概述(HTTP/2 ...

  8. WM_PAINT消息小结

    WM_PAINT是Windows窗口系统中一条重要的消息,应用程序通过处理该消息实现在窗口上的绘制工作. 1. 系统何时发送WM_PAINT消息? 系统会在多个不同的时机发送WM_PAINT消息:当第 ...

  9. URAL 1820. Ural Steaks(数学啊 )

    题目链接:space=1&num=1820" target="_blank">http://acm.timus.ru/problem.aspx? space ...

  10. BZOJ 1499 NOI2005 瑰丽华尔兹 单调队列

    题目大意:给定一个m*n的地图,一些点有障碍物,钢琴初始在一个点,每一个时间段能够选择向给定的方向移动一段距离,求最长路径长 朴素DP的话,我们有T个时间段,每一个时间段有m*n个点,n个时间,一定会 ...