Database Profile
Database Profiler收集有关正在运行的数据库命令,包括CRUD操作以及配置和管理命令。Profiler将收集的数据写入admin数据库下的system.profile的固定集合。Database Profiler默认情况是OFF的,可以在数据库或实例上启用Profiler
分析级别
level | 描述 |
---|---|
0 | 默认级别,profiler处于关闭状态并且没有任何数据 |
1 | 将超过slowms时间的操作记录在固定集合中 |
2 | 记录所有的操作数据 |
当前数据库设置分析级别并设置慢操作阈值(毫秒)
|
|
查看分析级别
|
|
- was表示当前的分析级别
- slowms表示慢操作阈值,以毫秒为单位
- sampleRate表示分析的慢操作百分比
为整个实例启用分析需要在启动时指定下列参数,或者在参数文件中指定operationProfiling
|
|
无法在Mongos实例上启用profiler,要在分片环境启用profiler,必须为群集中每个实例启用profiler。从MongoDB 4.0开始可以在Mongos设置slowms和slowOpSampleRate来配置诊断日志
分析慢查询日志
查询最近的十条日志
|
|
查询特定集合的操作
|
|
查询command外的操作
|
|
查询特定时间范围内
|
|
分析查询结果
|
|
更改system.profile集合大小
由于system.profile集合是一个仅1M大小的固定集合,如果需要增加或减少该结合的大小,必须按照下列步骤操作
- 禁用分析
1
db.setProfilingLevel(0)
- 删除system.profile集合
1
db.system.profile.drop()
- 创建一个新的system.profile集合
1
db.createCollection("system.profile" , {capped : true , size : 4000000})
- 重新启用分析
1
db.setProfilingLevel(1)
如果修改的secondary节点的system.profile大小,需要将其以standalone模式启动再进行修改
更多参考内容请查看链接:Database Profiler