一、开启Profiling慢日志
1)开启Profiling的三种方式
1、全局开启Profiling
如果想要全局开启Profiling,则可以在mongod启动时加上参数
1 | mongod --profile 1 --slowms100 # 1表示追踪级别,100表示慢查询判定时间(ms) |
2、配置文件设置开启
配置文件添加如下配置:
1 | operationProfiling: |
3、mongo shell设置开启
mongo shell进行实时配置,命令如下:
1 | > db.setProfilingLevel(1,200) ---1表示level,200表示慢查询时间(ms),也可以省略时间设置 |
1 | > db.getProfilingStatus() ---查询当前慢查询的状态信息 |
1 | > db.getProfilingLevel() ---只查询Profiling级别可用此命令 |
2)Profiling的级别
1 | 0 – 不开启 |
3)Profile的相关信息解释
1 | ? op:操作的类型,比如:insert,query,command,remove... |
4)查询Profile记录语句
- 查询执行时间大于200ms的Profile记录
1 | > db.system.profile.find( { millis : { $gt : 200 } } ) |
- 查询执行时间大于200ms的Profile记录:并根据millis排序(-1为降序,1为排序)
1 | > db.system.profile.find( { millis : { $gt : 200 } } ).sort({"millis":-1}) |
- 查看最近的10条记录
1 | >db.system.profile.find().limit(10).sort( { ts : -1 } ).pretty() |
- 查看关于某个collection的相关慢查询操作
1 | >db.system.profile.find({ns:'mydb.table1'}).pretty() |
5)清除Profile慢日志并查看配置
1 | db.setProfilingLevel(0); |