千金药方——MongoDB疑难杂症的分析和优化

Driver 使用问题

慎用local、admin

• local:存储节点自身配置信息,数据不会被同步,重要的数据不要存储在 local 数据库,避免数据丢失

• admin:存储⽤用户、⻆⾊等管理信息,写⼊时会加 DB 级别互斥写锁,业务数据不要存储在
admin 数据库,影响性能

 

合理配置连接数:

thread per connection 网络服务模型,每个线程需要1MB 的栈空间,⼤量连接时,线程切换开销大;限制连接数资源; mongod
配置 net.maxIncomingConnections 参数,Driver通过 Connection
String URI 的 maxPoolSize 参数来配置连接池⼤大⼩小

 

避免使用短连接:

短连接增加额外的 connect、auth、close、线程创建及销毁开销, MongoDB 鉴权性能问题,优化后性能提示10+倍

 

干掉长(慢)请求


客户端发起耗时请求,如遍历集合、建索引、mapreduce、aggregation 等,主动断开连接后,后端的请求仍然在执行

• currentOp + killOp 中止后端正在运行的请求

复制集问题

管理 oplog


支持在线动态修改 oplog 大小

• db.runCommand({collMod: “oplog.rs”, maxSize: 1024000000})


支持复制集成员根据同步进度自适应管理 oplog


支持设置⼀一个 oplog
保护时间戳,所有超过该时间戳的 oplog都会自动保留,支持全量、增量备份

 

避免无 id 索引的集合,尽量后台建索引shard key 选择

Shared Cluster问题

分片方式:范围分片,hash分片

Shared key 选择

PPT详情如下:

时间: 2024-09-13 12:32:10

千金药方——MongoDB疑难杂症的分析和优化的相关文章

MongoDB范围查询的索引优化

我们知道,http://www.aliyun.com/zixun/aggregation/13461.html">MongoDB的索引是B-Tree结构的,和MySQL的索引非常类似.所以你应该听过这样的建议:创建索引的时候要考虑到sort操作,尽量把sort操作要用到的字段放到你的索引后面.但是有的情况下,这样做反而会使你的查询性能更低. 问题 比如我们进行下面这样的查询: db.collection.find({"country": "A"}).

如何实现网站分析和优化团队的最佳组合

在过去,我们以几种不同的方式对广告公司内部的团队进行了组合,同时也参照了其它企业组合团队的模式.一些模式运作非常好,而另一些则不是很成功. 在早些时候,许多网络团队在IT部门,因为人们认为纯技术的魔力可以打造网站.随时时间的推移,许多企业打破了把网络团队放在一起的做法,一些甚至建立了独立的企业. 许多企业发现,网络是一个重要的营销工具,于是将其整合到了营销部门中.网络是一个重要的营销工具,企业现在意识到网络与企业的许多部门都有关联,应该与多个部门结合起来. 整合网络动作可以有不同的方式.在一种情

加速PHP动态网站 MySQL索引分析和优化

本文主要讲述了如何加速动态网站的MySQL索引分析和优化. 一.什么是索引? 索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存.如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录.表里面的记录数量越多,这个操作的代价就越高.如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置.如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍. 假设我们创建了一个名为peo

加速动态网站 MySQL索引分析和优化

本文主要讲述了如何加速动态网站的MySQL索引分析和优化. 一.什么是索引? 索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存.如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录.表里面的记录数量越多,这个操作的代价就越高.如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置.如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍. 假设我们创建了一个名为peo

大型网站性能监测、分析与优化常见问题Q&A

大型网站性能监测.分析与优化常见问题Q&A @tanwen110 (唐文),曾负责腾讯四大平台之一网络媒体平台的整体运维.运营规划工作:曾任百度T7架构师和百度性能优化TOPIC.百度UAQ.APM平台负责人:畅销书<海量运维.运营规划之道>作者: mmTrix创始人,后并入上市公司高升控股(000971.SZ),出任技术VP. 购买链接:http://item.jd.com/11962556.html Q:基于rest的微服务,有什么好的监控方案推荐的,最好是对系统影响最小的 A:自

mysql性能优化-慢查询分析、优化索引和配置

目录 一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 profiling分析查询   2索引及查询优化 三.配置优化 1)      max_connections 2)      back_log 3)      interactive_timeout 4)      key_buffer_size 5)      query_cache_size 6)      record_buffer_size 7)      read_rnd_b

IOS使用Instrument-Time Profiler工具分析和优化性能问题

本文讲的是IOS使用Instrument-Time Profiler工具分析和优化性能问题,前不久我做了一个富文本编辑工具,编辑器遇到了一个性能问题是添加多张图片,当滚动编辑区域,遇到图片切换的时候会有明显的卡顿现象.这篇文章基于这个卡顿的性能问题进行性能瓶颈的分析以及做对应的优化. 可以打开这个链接 iOS使用UITableView实现的富文本编辑器 查看我的文章,这篇文章所用的项目也是基于这个项目的. 结果 最终的分析优化的结果把时间从90ms的数量级降低到了2ms的数量级,达到了一个比较流

《流量的秘密: Google Analytics网站分析与优化技巧(第3版)》一2.3 了解网站分析数据的准确性

2.3 了解网站分析数据的准确性 流量的秘密: Google Analytics网站分析与优化技巧(第3版) 网站分析对于衡量网站的表现相当重要.但是,只有在避免一些常见的数据收集错误(特别是对不同来源的数据进行比较时)的前提下,这些网站分析数据才是准确可靠的. 遗憾的是,相当多的企业只看到了网站分析报告的表面价值.毕竟,这些数据得来不易.但是,现实总是残酷的,网站分析的数据从来都不是百分之百的准确,就算是估计误差范围也很困难. 那么,关键是什么呢? 尽管有各种各样的缺陷,但误差在每周或每个月的

《流量的秘密: Google Analytics网站分析与优化技巧(第3版)》一1.5 网站分析的投资回报率

1.5 网站分析的投资回报率 流量的秘密: Google Analytics网站分析与优化技巧(第3版) Google Analytics是一个免费提供数据收集和分析报告的工具.然而,工具部署.数据分析.报告解读和网站优化都需要资源的投入.在网站分析上投入多少资源取决于网站在整体业务中的重要性. 应该在网站分析上投入多少 在Jim Sterne的一系列eMetrics会议上,一个很棒的问题经常被提及:"衡量投资回报率的投资回报率是多少?"换句话说,考虑到绝大多数从事这份工作的人也有其他