网站首页 文章专栏 mongodb Profiling(分析器) 之慢查询详解在副本集或分片集开启
mongodb Profiling(分析器) 之慢查询详解在副本集或分片集开启
编辑时间:2019年12月23日 11:57 作者:赵彦昌 浏览量:2835

 在 版本: 4.0.6 以后,mongos  虽然还是不支持 profilling 功能 , 但可以开启慢查询 记录功能。只需要在 mongos 的启动参数上添加,记录的毫秒值( slowms )和 记录概率 ( sampleRate )

字段 类型 说明
profile
int

0 : 关闭

1 : 开启慢查询

2 : 开启所有操作收集数据。

slowms
int 慢速操作时间阈值,以毫秒为单位。运行时间超过此阈值的操作被视为慢操作。默认: 100ms
sampleRate 
double
 取值范围(0 ~ 1) 包含0 和 1 ,表示分析或记录的慢速操作的百分数。比如 1.0 为100% 的查询操作都会分析 默认: 1.0

副本集开启的 慢查询

从 4.0.6 版本,慢查询记录日志,只保存在 secondaries 节点上。


在 mongodb 单实例 、副本集、分片集上开启慢查询:

单实例:


# 开启分析
# 慢阀值: 20 毫秒
# 分析 42% 的查询操作
db.setProfilingLevel(1, { slowms: 20, sampleRate: 0.42 })
副本集:


副本集设置 的 慢查询 记录不受下列设置影响

1. 不受 slowOpSampleRate 设置影响,意思是说:会对 100% 的查询操作分析

2. 不受logLevel/systemLog.verbosity级别(或systemLog.component.replication.verbosity级别)的影响;也就是说,对于oplog条目,辅助日志只记录慢的oplog条目。增加logLevel级别不会记录所有oplog条目。

3. 不受 profiling level 设置控制。 profile 设置为0 。但 slowms 设置了,就可以


副本集 开启慢查询日志:

db.setProfilingLevel(1, { slowms: 20 })



分片集开启:



db.setProfilingLevel(0, { slowms: 20, sampleRate: 0.42 })


要查看当前分析器(profilling) 开启情况,可以使用 db.getProfilingStatus()


查询 Profiling 记录

db.system.profile.find()




来说两句吧
最新评论