MongoDB---性能优化---(1)

MONGODB数据架构

升级解决.方案

问题发现

应用服务器突然涌入的用户人数,造成服务器响应变慢

检查服务器,发现每次响应速度极慢,为30ops

检查过程

.发现数据库查询缓慢

.检查索引

.检查内存占.用量

.检查TCP连接

对比测试1

.硬件配置:

.客户端:

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

.服务端:

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

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

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

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

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

对比测试2

.硬件配置:

.客户端:

.阿.里云,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

.硬件配置:

.客户端:

.物理机,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

.硬件配置:

.客户端:

. 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

.硬件配置:

.客户端:

. 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。

.小结:至此终于找到问题根结,客户端cpu核数决定mongodb查询速度。

结论

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

2.客户端cpu核数决定mongodb查询速度。

3.tcp的限制通过.走内..网可以避免。

4.linux操作系统胜过windows。因此mongodb架构在linux上.比架构在windows上更好。

最新架构

最新架构

极限性能测试

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

.打开4个iis客户端,同时对router进.行查询,

router可以达到每秒20000次查询。换成业务对比,即每秒可以应付2000个人。

性能结论

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

.为了保证备份的完整性,因此对slave数据库进行备份,对router进行备份。备份保留30天。

MongoDB---性能优化---(1),布布扣,bubuko.com

时间: 2024-10-13 05:12:31

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

MongoDB性能优化五个简单步骤

大家在使用MongoDB的时候有没有碰到过性能问题呢?这里总结了MongoDB性能优化的五个步骤,希望能够有所帮助. 第一步:找出慢语句 一般来说查询语句太慢和性能问题瓶颈有着直接的关系,所以可以用MongoDB的性能分析工具来找出这些慢语句: db.setProfilingLevel(1, 100); 第二步:使用explain分析 通过使用explain来对这些慢语句进行诊断.此外还可以mtools来分析日志. 第三步:创建索引 分析完之后需要创建新的索引(index)来提升查询的性能.别忘

MongoDB性能优化指南

一.索引 MongoDB 提供了多样性的索引支持,索引信息被保存在system.indexes 中,且默认总是为_id创建索引,它的索引使用基本和MySQL 等关系型数据库一样.其实可以这样说说,索引是凌驾于数据存储系统之上的另一层系统,所以各种结构迥异的存储都有相同或相似的索引实现及使用接口并不足为 奇. 1.基础索引 在字段age 上创建索引,1(升序);-1(降序): db.users.ensureIndex({age:1}) _id 是创建表的时候自动创建的索引,此索引是不能够删除的.当

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

出处:http://www.cnblogs.com/mokafamily/p/4102829.html 性能与用户量 “如何能让软件拥有更高的性能?”,我想这是一个大部分开发者都思考过的问题.性能往往决定了一个软件的质量,如果你开发的是一个互联网产品,那么你的产品性能将更加受到考验,因为你面对的是广大的互联网用户,他们可不是那么有耐心的.严重点说,页面的加载速度每增加一秒也许都会使你失去一部分用户,也就是说,加载速度和用户量是成反比的.那么用户能够接受的加载速度到底是多少呢? 如图,如果页面加载

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

关联文章索引: 大数据时代的数据存储,非关系型数据库MongoDB(一) 性能与用户量 “如何能让软件拥有更高的性能?”,我想这是一个大部分开发者都思考过的问题.性能往往决定了一个软件的质量,如果你开发的是一个互联网产品,那么你的产品性能将更加受到考验,因为你面对的是广大的互联网用户,他们可不是那么有耐心的.严重点说,页面的加载速度每增加一秒也许都会使你失去一部分用户,也就是说,加载速度和用户量是成反比的.那么用户能够接受的加载速度到底是多少呢? 如图,如果页面加载时间超过10s那么用户就会离开

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

在BI服务中通过查询聚合语句分析定位慢查询/聚合分析,小结如下: 慢查询定位: 通过Profile分析慢查询 对于查询优化: 通过添加相应索引提升查询速度: 对于聚合大数据方案: 首先要说明的一个问题是,对于OLAP型的操作,期望不应该太高.毕竟是对于大量数据的操作,光从IO就已经远超通常的OLTP操作,所以要求达到OLTP操作的速度和并发是不现实的,也是没有意义的.但并不是说一点优化空间也没有. 这样优化之后预计在可以提升一部分查询性能,但是并不能解决.原因开头说了,对OLAP就不能期望这么高

MongoDB性能优化

MongoDB是一个高性能可扩展基于文档的NoSQL数据库,高性能也需要在多个关键维度的配置,包括硬件.应用模式.模式设计.索引.磁盘I/O等. 存储引擎 WiredTiger是3.0以后的默认存储引擎,细粒度的并发控制和数据压缩提供了更高的性能和存储效率.3.0以前默认的MMAPv1也提高了性能.在MongoDB复制集中可以组合多钟存储引擎,各个实例实现不同的应用需求. 硬件 MongoDB初衷是采用水平扩展构建集群,而不是价格更高的硬件升级.采用复制保证高可用,自动分片使数据均匀分布在各节点

【转】mongodb可以通过profile来监控数据 (mongodb性能优化)

开启 Profiling  功能 ,对慢查询进行优化: mongodb可以通过profile来监控数据,进行优化. 查看当前是否开启profile功能用命令 db.getProfilingLevel()  返回level等级,值为0|1|2,分别代表意思:0代表关闭,1代表记录慢命令,2代表全部 db.setProfilingLevel(level);  #level等级,值同上 level为1的时候,慢命令默认值为100ms,更改为db.setProfilingLevel(level,slow

Mysql数据库性能优化(一)

参考 http://www.jb51.net/article/82254.htm 今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能.这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库. mysql的性能优化无法一蹴而就,必须一步一步慢慢来,从各个方面

java架构师、高性能、高并发、高可用、高可扩展、性能优化、集群、电商网站架构

15套java架构师.集群.高可用.高可扩展.高性能.高并发.性能优化.Spring boot.Redis.ActiveMQ.Nginx.Mycat.Netty.Jvm大型分布式项目实战视频教程 视频课程内容包含: 高级Java架构师包含:Spring boot.Spring  cloud.Dubbo.Redis.ActiveMQ.Nginx.Mycat.Spring.MongoDB.ZeroMQ.Git.Nosql.Jvm.Mecached.Netty.Nio.Mina.性能调优.高并发.to

15套java互联网架构师、高并发、集群、负载均衡、高可用、数据库设计、缓存、性能优化、大型分布式 项目实战视频教程

* { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩 展.高性能.高并发.性能优化.Spring boot.Redis.ActiveMQ.Nginx.Mycat.Netty.Jvm大型分布 式项目实战视频教程 视频课程包含: 高级Java架构师包含:Spring boot.Spring  cloud.Dubbo.Redis.ActiveMQ.Nginx.Mycat