千金药方——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详情如下:

a84163063f921d2c6a563dc24490373407e3aa60

7358f1e27be954a6e1aa2ef87e9ee8b5c51b83f7

52a23ca5137265cc2364354a627464ebd6e1f953

c1762d12a5ece778be333d51c93a9fef6d2f1cbb

dd7a2fcd653082e5e53d7f2e3b8e8070297c371a

3b303a9c98605d5b1fe5ebbfa04c17c6235e392a

6dbb16243886bdcef28353a5f680847411c88685


c0bed557588acf0aeb5b4e48fe570f750817bab2

3b303a9c98605d5b1fe5ebbfa04c17c6235e392a


4f852c20188c38c84f871bb8d4767db855b0f072

c83319c1fdefab289f8829035e91f0cc8bc16553

7528018cb53d56808a8adb8cc9e9b956ccafae5b

24fd81f59914153a208b2cb89b539c0ef21c2152

7bd20feb4d5944caf1781eb5b2308df15379368f

15d4c16a0ef569ca720a4defc605feb3f50dda09

fdebe26fc29f0e17376cf2059bc4181b6b8bd03b

7cfb74e799f19841de485ae3ccd45c1422bf64cd

c37ce8f78d71131ffab123923d720d85541503f8

804c4929f608b2e5c723808e3eb450f888fb9add

00e1a6e25783bfa30746924cd4a4c19fdf533f29

4bd923680e1d253b0320f7fe7e99706c2fad6ce1

1bf0c2547a98df59f7896b6cf1090244445b1ce2

62d803f4de6d63b5dd40040899b4734f4f3ad045

c65c98e5647d29c446d7a68c3be14f0f0be5164a



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值