参考:
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

MongoDB 3.6 开启慢查询的更多相关文章

  1. 操作3 mongodb和mysql 开启慢查询日志 ,以及mongodb从配置文件启动

    1. mongodb从配置文件启动 创建配置文件:/usr/local/mongodb/etc/mongodb.conf 配置文件的内容为: #Directory and relavent set d ...

  2. Mongodb 3 查询优化(慢查询Profiling)

    开启慢查询Profiling Profiling级别说明 0:关闭,不收集任何数据. 1:收集慢查询数据,默认是100毫秒. 2:收集所有数据 1.通过修改配置文件开启Profiling 修改启动mo ...

  3. mysql开启慢查询日志及查询--windows

    MySQL慢查询配置 1. 慢查询有什么用? 它能记录下所有执行超过long_query_time时间的SQL语句, 帮你找到执行慢的SQL, 方便我们对这些SQL进行优化. 2. 如何开启慢查询? ...

  4. MYSQL开启慢查询日志实施

    查看当前服务器是否开启慢查询:1.快速办法,运行sql语句show VARIABLES like "%slow%" 2.直接去my.conf中查看.my.conf中的配置(放在[m ...

  5. MySQL 5.5开启慢查询功能

    vim /etc/my.cnf [mysqld] slow-query-log = on # 开启慢查询功能 slow_query_log_file = /usr/local/mysql/data/s ...

  6. MySQL:动态开启慢查询日志(Slow Query Log)

    前言 在开发中,高效能的程序 也包括 高效能的查询,所以优化SQL也是程序员必要技能之一.要优化就必须要有慢日志记录才可以知道哪些查询慢,然后反向去修改 慢日志设置方式 写入文件 写入数据库 实践操作 ...

  7. MySQL开启慢查询 总结

    MYSQL慢查询配置 1. 慢查询有什么用? 它能记录下所有执行超过long_query_time时间的SQL语句, 帮你找到执行慢的SQL, 方便我们对这些SQL进行优化. 2. 如何开启慢查询? ...

  8. linux下mysql开启慢查询

    mysql中最影响速度的就是那些查询很慢的语句.这些慢的语句,可能是写的不够合理或者是大数据下多表的联合查询等等.所以我们要找出这些语句,分析原因,加以优化. 1.方法1:用命令开启慢查询 1).查看 ...

  9. MySQL慢查询(一) - 开启慢查询

    一.简介 开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能. 二.参数说明 slow_query_log 慢查询开启状态slow_q ...

随机推荐

  1. python面试题之Python 的特点和优点是什么

    Python 可以作为编程的入门语言,因为他具备以下特质: 1. 解释性 2. 动态特性 3. 面向对象 4. 语法简洁 5. 开源 6. 丰富的社区资源 7 库丰富 文章转载自Python黑洞网

  2. python基础学习 day 1

    初学python,记录下自己的历程~ 了解了一下python的基本概念,现在使用的比较多的就是python2.7 学习了if语句和两个经典的循环语句 #关于if语句的应用 name = raw_inp ...

  3. ssh-keygen - 认证密钥的产生, 管理和转换

    总览 (SYNOPSIS) ssh-keygen -words [-q ] [-b bits ] -t type [-N new_passphrase ] [-C comment ] [-f outp ...

  4. 390-基于Zynq UltraScale+ MPSoC的单板嵌入式计算机

    基于Zynq UltraScale+ MPSoC的单板嵌入式计算机 概述:Aldec TySOM-3-ZU7EV,将Xilinx Zynq UltraScale+ ZU7EV MPSoC以及DDR4 ...

  5. Nginx的简单使用

    一.Nginx概述 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务.它的特点是支持高并发:资源消耗少:可以做HTTP反向代 ...

  6. java中的进制转换以及字符串类和数值类的相互转化

    import java.util.*; import java.io.*; import java.math.*; import java.math.*; public class Main { pu ...

  7. Java JDK1.8新特性之四大函数式接口

    JDK 1.8的一些新特性 四大核心函数式接口(Consumer.Predicate.Supplier.Function),结合lambda表达式 import java.util.ArrayList ...

  8. java之重装系统重新配置环境变量 jdk、eclipse、idea、Oracle、svn、gitlab等环境变量的安装

    前言:由于公司电脑进行统一版本升级,需要重装系统(只对C盘做升级),记录一下踩过的坑! 首先理一下思路,看那些东西需要做: 1.jdk及其环境变量 2.eclipse(文件夹版的需要运行项目进行测试) ...

  9. cookie记住账户密码

    //cookie保存路径 String autologin=request.getParameter("autologin"); String path = request.get ...

  10. JavaScript之BOM+DOM

    BOM 浏览器对象模型, 用于把浏览器相关的组件封装为对象进行操作. BOM是包含了DOM的. window对象 弹出框相关 确认: 取消: 与打开关闭window有关的方法 定时器相关 暂停选老婆 ...