<b>driver </b><b>使</b><b>用问题</b>
<b>慎用local</b><b>、admin</b><b>:</b>
• local:存储节点自身配置信息,数据不会被同步,重要的数据不要存储在 local 数据库,避免数据丢失
• admin:存储⽤用户、⻆⾊等管理信息,写⼊时会加 db 级别互斥写锁,业务数据不要存储在
admin 数据库,影响性能
<b>合理</b><b>配置连接数:</b>
thread per connection 网络服务模型,每个线程需要1mb 的栈空间,⼤量连接时,线程切换开销大;限制连接数资源; mongod
配置 net.maxincomingconnections 参数,driver通过 connection
string uri 的 maxpoolsize 参数来配置连接池⼤大⼩小
<b>避免使</b><b>用短连接:</b>
短连接增加额外的 connect、auth、close、线程创建及销毁开销, mongodb 鉴权性能问题,优化后性能提示10+倍
<b>干掉长(</b><b>慢)</b><b>请求</b>
•
客户端发起耗时请求,如遍历集合、建索引、mapreduce、aggregation 等,主动断开连接后,后端的请求仍然在执行
• currentop + killop 中止后端正在运行的请求
<b>管理</b><b> oplog</b>
支持在线动态修改 oplog 大小
• db.runcommand({collmod: “oplog.rs”, maxsize: 1024000000})
支持复制集成员根据同步进度自适应管理 oplog
支持设置⼀一个 oplog
保护时间戳,所有超过该时间戳的 oplog都会自动保留,支持全量、增量备份
<b>避免</b><b>无 id </b><b>索引的集合,尽量</b><b>后台建索引shard key </b><b>选择</b>
shared cluster问题
分片方式:范围分片,hash分片
shared key 选择
ppt详情如下:
