博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB 3.6 开启慢查询
阅读量:4970 次
发布时间:2019-06-12

本文共 2747 字,大约阅读时间需要 9 分钟。

参考:
Profiling Levels:支持一下级别。
0 默认的profiler level,profiler 关闭并且不收集数据。
1 profiler 收集超过slowms的操作数据。
2 profiler 收集所有的数据。
设置收集数据:设置级别为1,慢查询标准为200ms.
rs0:PRIMARY> db.setProfilingLevel(1,200)
{
"was" : 1,
"slowms" : 200,
"sampleRate" : 1,
"ok" : 1,
"operationTime" : Timestamp(1536309385, 1),
"$clusterTime" : {
"clusterTime" : Timestamp(1536309385, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}
设置语句:
db.setProfilingLevel(1, { slowms: 200 })
查询验证配置:
rs0:PRIMARY> db.getProfilingStatus()
--查询级别:
rs0:PRIMARY> db.getProfilingLevel()
1
--关闭设置Profiling:
db.setProfilingLevel(0)
--设置慢查询抽样比例:
rs0:PRIMARY> db.setProfilingLevel(1, { sampleRate: 0.42 })
{
"was" : 1,
"slowms" : 200,
"sampleRate" : 1,
"ok" : 1,
"operationTime" : Timestamp(1536309735, 1),
"$clusterTime" : {
"clusterTime" : Timestamp(1536309735, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}
rs0:PRIMARY>
rs0:PRIMARY> db.getProfilingStatus()
{
"was" : 1,
"slowms" : 200,
"sampleRate" : 0.42,
"operationTime" : Timestamp(1536309775, 1),
"$clusterTime" : {
"clusterTime" : Timestamp(1536309775, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}
注释:
By default, sampleRate is set to 1.0, meaning all slow operations are profiled.
When sampleRate is set between 0 and 1, databases with profiling level 1 will
only profile a randomly sampled percentage of slow operations according to sampleRate.
sampleRate 参数的默认值是1.0,即收集所有慢查询,此参数的范围值是0到1.当级别设置为1会按照sampleRate 设置的值随机抽取百分比的慢操作。
除了在运行时设置慢查询外,还可以在命令模式下启动时设置:
mongod --profile 1 --slowms 15 --slowOpSampleRate 0.5
也可以将参数放置到配置文件:
profile=1
slowms=200
slowOpSampleRate=0.5
profiler的数据存储在MongoDB中的system.profile collection。
在主库修改system.profile的集合的大小:
步骤如下:
Disable profiling.
Drop the system.profile collection.
Create a new system.profile collection.
Re-enable profiling.
--修改为4M:
db.setProfilingLevel(0)
db.system.profile.drop()
db.createCollection( "system.profile", { capped: true, size:4000000 } )
db.setProfilingLevel(1)
--慢查询操作的查询:
--慢查询操作的可视化:
mongoDB的慢查询操作可以结合PMM的监控PMM-QAN,但是支持MongoDB 3.2及以上版本。
需要2个步骤:
1.设置必需的账号
2.开启profiler。
在MongoDB设置账号和权限:
db.getSiblingDB("admin").createUser({
user: "mongodb_exporter",
pwd: "mongodb_exporter",
roles: [
{ role: "clusterMonitor", db: "admin" },
{ role: "read", db: "local" }
]
})
开启profiler:
$ mongod --dbpath=DATABASEDIR --profile 2 --slowms 200 --rateLimit 100
或者写入配置文件:
operationProfiling:
slowOpThresholdMs: 200
mode: slowOp
rateLimit: 100
https://docs.mongodb.com/manual/tutorial/manage-the-database-profiler/
https://www.percona.com/doc/percona-monitoring-and-management/conf-mongodb.html 

转载于:https://www.cnblogs.com/ExMan/p/10907795.html

你可能感兴趣的文章
CoreGraphics QuartzCore CGContextTranslateCTM 说明
查看>>
基本推荐算法站点
查看>>
创建与删除索引
查看>>
log4net使用具体解释
查看>>
Perl多进程
查看>>
乐酷工作室孙志伟:Testin云測试有广度有深度 省钱省力值得信赖
查看>>
CodeForces 22C System Administrator
查看>>
团队博客8
查看>>
多操作系统安装实践小结
查看>>
ABP学习入门系列(三) (领域层中的仓储Repository)
查看>>
iPhone-NSAssert使用
查看>>
35.大质数
查看>>
spring包说明
查看>>
从技术到管理:工作转型后角色定位
查看>>
linux快速查找文件
查看>>
【bzoj4008】 HNOI2015—亚瑟王
查看>>
lambda、map、reduce、filter函数讲解
查看>>
Apache下通过shell脚本提交网站404死链
查看>>
java ftp下载文件
查看>>
hint使用
查看>>