监控Mongo慢查询

mongodb-query-exporter:Prometheus MongoDB聚合查询导出器 Prometheus MongoDB查询导出器 用于MongoDB聚合查询导出器。 特征 支持量规指标 推和推(仅MongoDB> = 3.6支持推) 支持多个MongoDB服务器 Golang的公共API 公制缓存支持 请注意,这并不是要替代来检测MongoDB内部。 此应用程序根据所需查询(聚合)以prometheus格式导出​​自定义MongoDB指标。 测试版通知 该软件当前是beta版,在发布稳定版本之前,API /配置可能会在没有通知的情况下中断。 安装 获取Prometheus MongoDB聚合查询导出器(以或打包为 。 舵图 对于kubernetes用户,MongoDB查询导出器有一个正式的Helm图表。 请在阅读安装说明。 用法 $ mongodb_query_exporter 使用-help标志可获取帮助信息。 如果您使用MongoDB Authoriza 立即下载

监控Mongo慢查询

1. 使用mongostat监控MongoDB全局情况

 mongostat是mongdb自带的状态检测工具,在命令行下使用。它会间隔固定时间获取MongoDB的当前运行状态,并输出。
 如果你发现数据库突然变慢或者有其他问题的话,你第一手的操作就考虑采用mongostat来查看mongo的状态。
 
 mongostat --host localhost:27017 -uroot -p123456 --authenticationDatabase admin
 参数说明:
 host:指定IP地址和端口,也可以只写IP,然后使用--port参数指定端口号
 -u: 如果开启了认证,则需要在其后填写用户名
 -p:  密码
 --authenticationDatabase:若开启了认证,则需要在此参数后填写认证库(注意是认证上述账号的数据库)
 

mongostat输出详解
insert/s : 官方解释是每秒插入数据库的对象数量,如果是slave,则数值前有*,则表示复制集操作
query/s : 每秒的查询操作次数
update/s : 每秒的更新操作次数
delete/s : 每秒的删除操作次数
getmore/s: 每秒查询cursor(游标)时的getmore操作数
command: 每秒执行的命令数,在主从系统中会显示两个值(例如 3|0),分表代表 本地|复制 命令
注: 一秒内执行的命令数比如批量插入,只认为是一条命令(所以意义应该不大)
dirty: 仅仅针对WiredTiger引擎,官网解释是脏数据字节的缓存百分比
used:仅仅针对WiredTiger引擎,官网解释是正在使用中的缓存百分比
flushes:
For WiredTiger引擎:指checkpoint的触发次数在一个轮询间隔期间
For MMAPv1 引擎:每秒执行fsync将数据写入硬盘的次数
注:一般都是0,间断性会是1, 通过计算两个1之间的间隔时间,可以大致了解多长时间flush一次。flush开销是很大的,
    如果频繁的flush,可能就要找找原因了
vsize: 虚拟内存使用量,单位MB (这是 在mongostat 最后一次调用的总数据)
res:  物理内存使用量,单位MB (这是 在mongostat 最后一次调用的总数据)
注:这个和你用top看到的一样, vsize一般不会有大的变动, res会慢慢的上升,如果res经常突然下降,去查查是否有别的程序狂吃内存。

qr: 客户端等待从MongoDB实例读数据的队列长度
qw: 客户端等待从MongoDB实例写入数据的队列长度
ar: 执行读操作的活跃客户端数量
aw: 执行写操作的活客户端数量
注:如果这两个数值很大,那么就是DB被堵住了,DB的处理速度不及请求速度。看看是否有开销很大的慢查询。如果查询一切正常,确实是负载很大,就需要加机器了
netIn:MongoDB实例的网络进流量
netOut:MongoDB实例的网络出流量
注:此两项字段表名网络带宽压力,一般情况下,不会成为瓶颈
conn: 打开连接的总数,是qr,qw,ar,aw的总和
注:MongoDB为每一个连接创建一个线程,线程的创建与释放也会有开销,所以尽量要适当配置连接数的启动参数,
   maxIncomingConnections,阿里工程师建议在5000以下,基本满足多数场景
set: 副本集的名称
repl: 节点的复制状态
 M     ---master
 SEC     ---secondary
 REC     ---recovering
 UNK     ---unknown
 SLV     ---slave
 RTR     ---mongs process("router')
 ARB     ---arbiter

2. 使用Profiling捕捉慢查询

类似于MySQL的slow log, mongodb可以监控所有慢的以及不慢的查询。这个工具就是Profiling,该工具在运行的实例上收集有关MongoDB的 写操作,游标,数据库命令等,可以在数据库级别开启该工具,也可以在实例级别开启。该工具会把收集到的所有都写入到system.profile集合中,该集合是一个capped collection。Profiling功能肯定是会影响效率的,但是不太严重,原因是他使用的是system.profile 来记录,而system.profile 是一个capped collection, 这种collection 在操作上有一些限制和特点,但是效率更高。

2.1 慢查询分析过程
1. 设置一个时间阀值,比如200ms
2. 在profiling中(system.profile)找到超过200ms的语句
3. 查看execStats,分析执行计划
4. 根据分析结果,决定是不是需要添加索引
2.2 Profiling基本操作

mongoshell(或者其他客户端比如mongochef等)
#查看状态:级别和时间
PRIMARY> db.getProfilingStatus()
{ "was" : 1, "slowms" : 200 }

#查看级别
PRIMARY> db.getProfilingLevel()

#级别说明:
0:关闭,不收集任何数据。
1:收集慢查询数据,默认是100毫秒。
2:收集所有数据

#设置级别
PRIMARY> db.setProfilingLevel(2)
{ "was" : 1, "slowms" : 100, "ok" : 1 }  #这里返回的是上一次的设置

#设置级别和时间
PRIMARY> db.setProfilingLevel(1,200)
{ "was" : 2, "slowms" : 100, "ok" : 1 }  #这里返回的是上一次的设置

#关闭Profiling
PRIMARY> db.setProfilingLevel(0)
{ "was" : 1, "slowms" : 200, "ok" : 1 }  #这里返回的是上一次的设置


#清空system.profile或者修改大小
#关闭Profiling
PRIMARY> db.setProfilingLevel(0)
{ "was" : 0, "slowms" : 200, "ok" : 1 }
#删除system.profile集合
PRIMARY> db.system.profile.drop()
true
#创建一个新的system.profile集合 --- 4M
PRIMARY> db.createCollection( "system.profile", { capped: true, size:4000000 } )
{ "ok" : 1 }
#重新开启Profiling
PRIMARY> db.setProfilingLevel(1,200)
{ "was" : 0, "slowms" : 200, "ok" : 1 }

#如果是复制集环境,要修改副本的system.profile的大小,必须把副本先从复制集中剔除,然后执行上述步骤,最后加入复制集。

#也可以MongoDB启动时,开启Profiling   
mongod --profile=1  --slowms=200
#或者在配置文件里添加
profile = 1
slowms = 200

3. 日常使用的Profiling查询脚本

#返回最近的10条记录
db.system.profile.find().limit(10).sort({ts:-1}).pretty()
#返回所有的操作,除command类型的
db.system.profile.find({op: {$ne:'command'}}).pretty()
#返回特定集合
db.system.profile.find({ns:'mydb.test'}).pretty()
#返回大于5毫秒慢的操作
db.system.profile.find({millis:{$gt:5}}).pretty()
#从一个特定的时间范围内返回信息
db.system.profile.find(
                  {
                   ts : {
                         $gt : new ISODate("2015-10-18T03:00:00Z"),
                         $lt : new ISODate("2015-10-19T03:40:00Z")
                        }
                  }
                 ).pretty()
#特定时间,限制用户,按照消耗时间排序
db.system.profile.find(
                  {
                    ts : {
                          $gt : newISODate("2015-10-12T03:00:00Z") ,
                          $lt : newISODate("2015-10-12T03:40:00Z")
                         }
                  },
                  { user : 0 }
                 ).sort( { millis : -1 } )
#查看最新的 Profile  记录: 
db.system.profile.find().sort({$natural:-1}).limit(1)
# 显示5个最近的事件
show profile

4. 案例分析

4.1 获取慢查询
#下面的语句过滤几个大表,因为基本无法优化,需要开发改逻辑,所以做了排除,在输出方面只输出了个人认为重要的,方便分析迅速定位

db.system.profile.find({"ns":{"$not":{"$in":["F10data3.f10_4_4_1_gsgg_content", "F10data3.f10_5_1_1_gsyb_content"]}}}, {"ns":1,"op":1, "query":1,"keysExamined":1,"docsExamined":1,"numYield":1, "planSummary":1,"responseLength":1,"millis":1,"execStats":1}).limit(10).sort({ts:-1}).pretty()

#下面是一个超过200ms的查询语句
{ 
"op" : "query",                     #操作类型,有insert、query、update、remove、getmore、command  
"ns" : "F10data3.f10_2_8_3_jgcc", 
"query" : {                         #具体的查询语句 包括过滤条件,limit行数  排序字段
    filter" : {
        "jzrq" : {
            "$gte" : ISODate("2017-03-31T16:00:00.000+0000"), 
            "$lte" : ISODate("2017-06-30T15:59:59.000+0000")
        }, 
        "jglxfldm" : 10.0
    }, 
    "ntoreturn" : 200.0,    
    "sort" : {                      #如果有排序  则显示排序的字段 这里是 RsId
        "RsId" : 1.0
    }
}, 
"keysExamined" : 0.0,               #索引扫描数量 这里是全表扫描,没有用索引 所以是 0
"docsExamined" : 69608.0,           #浏览的文档数 这里是全表扫描 所以是整个collection中的全部文档数
"numYield" : 546.0,                 #该操作为了使其他操作完成而放弃的次数。通常来说,当他们需要访问
                                    还没有完全读入内存中的数据时,操作将放弃。这使得在MongoDB为了
                                    放弃操作进行数据读取的同时,还有数据在内存中的其他操作可以完成。
"locks" : {                         #锁信息,R:全局读锁;W:全局写锁;r:特定数据库的读锁;w:特定数据库的写锁
    "Global" : {
        "acquireCount" : {
            "r" : NumberLong(1094)  #该操作获取一个全局级锁花费的时间。
        }
    }, 
    "Database" : {
        "acquireCount" : {
            "r" : NumberLong(547)  
        }
    }, 
    "Collection" : {
        "acquireCount" : {
            "r" : NumberLong(547)
        }
    }
}, 
"nreturned" : 200.0,                #返回的文档数量
"responseLength" : 57695.0,         #返回字节长度,如果这个数字很大,考虑值返回所需字段
"millis" : 264.0,                   #消耗的时间(毫秒)
"planSummary" : "COLLSCAN, COLLSCAN", #执行概览 从这里看来 是全表扫描 
"execStats" : {                       #详细的执行计划 这里先略过 后续可以用 explain来具体分析
}, 
"ts" : ISODate("2017-08-24T02:32:49.768+0000"),  #命令执行的时间
"client" : "10.3.131.96",                        #访问的ip或者主机
"allUsers" : [

], 
"user" : ""
}
4.2 分析慢查询
 1. 如果发现 millis 值比较大,那么就需要作优化。
 2. 如果docsExamined数很大,或者接近记录总数(文档数),那么可能没有用到索引查询,而是全表扫描。
 3. 如果keysExamined数为0,也可能是没用索引。
 4. 结合 planSummary 中的显示,上例中是  "COLLSCAN, COLLSCAN" 确认是全表扫描
 5. 如果 keysExamined 值高于 nreturned 的值,说明数据库为了找到目标文档扫描了很多文档。这时可以考虑创建索引来提高效率。
 6. 索引的键值选择可以根据 query 中的输出参考,上例中 filter:包含了 jzrq和jglxfldm 并且按照RsId排序,所以 我们的索引
    索引可以这么建: db.f10_2_8_3_jgcc.ensureindex({jzrq:1,jglxfldm:1,RsId:1})
4.3 执行计划中的TYPE类型
COLLSCAN     #全表扫描                                                避免
IXSCAN       #索引扫描                                                可以改进 选用更高效的索引
FETCH        #根据索引去检索指定document                               
SHARD_MERGE  #将各个分片返回数据进行merge                               尽可能避免跨分片查询
SORT         #表明在内存中进行了排序(与老版本的scanAndOrder:true一致)   排序要有index  
LIMIT        #使用limit限制返回数                                      要有限制 Limit+(Fetch+ixscan)最优
SKIP         #使用skip进行跳过                                         避免不合理的skip
IDHACK       #针对_id进行查询                                          推荐,_id 默认主键,查询速度快
SHARDING_FILTER  #通过mongos对分片数据进行查询                          SHARDING_FILTER+ixscan最优 
COUNT        #利用db.coll.explain().count()之类进行count运算             
COUNTSCAN    #count不使用Index进行count时的stage返回                    避免 这种情况建议加索引
COUNT_SCAN   #count使用了Index进行count时的stage返回                    推荐
SUBPLA       #未使用到索引的$or查询的stage返回                           避免
TEXT         #使用全文索引进行查询时候的stage返回  
PROJECTION   #限定返回字段时候stage的返回                                选择需要的数据, 推荐PROJECTION+ixscan
安装PMM Server-监控mongodb mysql.md Percona Monitoring and Management (PMM)是一款开源的用于管理和监控MySQL和MongoDB性能的开源平台,通过PMM客户端收集到的DB监控数据用第三方软件Grafana画图展示出来。 PMM提供了对MyISAM、InnoDB、TokuDB和PXC/Glarera的监控,另外也提供了Query Analytics的功能,可以检视执行了哪些SQL指令,并对执行效能较差的语法进行优化。另外在新版本还支持了MySQL复制拓扑图结构构造。Demo官网:http://pmmdemo.percona.com PMM针对操作系统的部份也提供了硬盘、网络、CPU和RAM的监控,特别的是它提供了Context switches、Processes和interrupts的监控,Context Switches可以看到CPU上下切换文的状况,Processes可以方便了解系统有多少程序在等待I/O。 立即下载

相关推荐

mongodb_exporter:一个用于MongoDB的Prometheus导出器,包括分片,复制和存储引擎

:warning_selector: 警告 我们切换到新分支。 请使用并在了解更多有关mongodb_exporter新版本的信息。 Percona MongoDB导出器 基于David Cuadrado( )的,但为全面支持和结构更改而分叉。 产品特点 MongoDB服务器状态指标(游标,操作,索引,存储等) MongoDB副本集指标(成员,Ping,复制滞后等) MongoDB复制Oplog指标(大小,时间长度等) MongoDB分片指标(分片,块,数据库/集合,平衡器操作) MongoDB RocksDB存储引擎指标(级别,压缩,缓存使用率,I / O速率等) MongoDB WiredTiger存储引

Mongo 慢SQL查询设置查监控

Mongo 慢SQL查询设置查监控

李逍遥 1741

基于Opencv+Mediapipe的头部姿态检测

在学生课堂专注度检测项目中,可以通过学生头部姿态来确定学生注意力方向,从而判断其是否专注于课堂。

weixin_67879842的博客 2336

MongoDB运行状态、性能监控与分析

mongostat详解   mongostat是mongdb自带的状态检测工具,在命令行下使用。它会间隔固定时间获取mongodb的当前运行状态,并输出。如果你发现数据库突然变慢或者有其他问题的话,你第一手的操作就考虑采用mongostat来查看mongo的状态。        它的输出有以下几列:   inserts/s 每秒插入次数   query/s 每秒查询次数   ...

mfkzhounb的专栏 509

飞书多维表格省钱攻略:1个专业版账号,全员合规用、权限全掌控

像运动馆、 托管班、作业辅导、少儿美术、书法、口才班等等。对于大多数中小团队而言,飞书多维表格的核心需求是“协作高效、数据可控、成本可控”,而“1个专业版账号+多联系人”的模式,恰好完美契合这三点——既不用为不必要的席位付费,又能解锁全部专业功能,还能通过精细化权限管控保障数据安全。尤其是餐饮店、乒乓球训练馆这类个体经营或小型团队,人员分工清晰、权限需求明确,采用这种模式能最大化节省成本,同时提升管理效率。无需复杂的配置,无需额外的技术支持,5分钟就能搭建起全员协作的省钱体系。

涛涛讲AI 2225

【论文+CAD图纸】光储充一体化微电网设计

近些年来,我国的经济发展迅速,对能源的需求不断增长,也加重了对环境的破坏,违背了我国的可持续发展战略。所以迫切需要寻找新型能源。由于太阳能在使用时不会产生污染,所以太阳能逐渐受到人们的重视。我国的太阳能资源丰富,具有的开发利用潜力。特别是近些年“光储充”一体化充电站为高科技绿色充电模式,“以光养桩”使光伏、储能、智能充电协同,智能微电网与公共电网互动,本设计对探索清洁可再生能源在民用场合的应用,有着重大的理论和工程价值。本文综述国内外相关光伏发电的成果和发展现状;

weixin_761237174的博客 926

https 慢_dba+开源工具:可视化分析MongoDB慢查询日志

工具研发者介绍贺春旸,凡普金科爱钱进DBA团队负责人,《MySQL管理之道:性能调优、高可用与监控》第一、二版作者,曾任职于中国移动飞信、安卓机锋网。致力于MariaDB、MongoDB等开源技术的研究,主要负责数据库性能调优、监控和架构设计。工具下载:https://github.com/hcymysql/mongo_slowquery简介MongoDB的慢SQL日志是记录到业务库的s...

weixin_39931146的博客 411

(二)使用VS2022克隆下载C++自制植物大战僵尸游戏教程

本文将介绍如何使用VS2022克隆下载《植物大战僵尸C++自制版本》。Gitee项目地址:Gitee仓库地址Github项目地址:Github仓库地址游戏官网地址(下载可直接运行)游戏官网。

尔灵尔亿的博客 4943

MongoDB中的监控工具有哪些,它们各自的作用是什么?

MongoDB 提供了多种监控工具来帮助管理员和开发者跟踪数据库的性能、健康状况以及运行状态。这些工具可以是 MongoDB 自带的,也可以是第三方提供的。

qq_33240556的博客 819

Linux ARM平台开发系列讲解(网络篇)1.3 MDIO总线设备device和设备driver匹配

在设备和驱动都载入内核后,设备和驱动是如何匹配起来的呢?其实他们就是通过的唯一标识phyID进行匹配phy_dev和phy_drv是通过phy_bus_match函数进行匹配,匹配成功后会建立链表链接,具体流程如下图: 返回总目录......

DSMGUOGUO的博客 1098

Python计算时间差的方法

使用datetime模块是Python内置的方法,使用timedelta对象可以更精确地计算时间差,而使用dateutil库则提供了更为灵活和方便的操作方式。我们可以使用datetime模块中的datetime类来表示一个具体的日期和时间,并进行相应的运算。在Python中,我们经常需要计算日期和时间之间的差异,例如计算两个日期之间的天数、小时数、分钟数等。Python提供了多种方法来计算时间差,下面我们将介绍其中的几种常用方法,并附上相应的源代码。在上面的代码中,我们使用了dateutil库中的。

学习使你进步。 2086

如何在MongoDB中监视查询慢的语句

MongoDB Profiler 是一个强大的工具,用于监控和诊断查询性能问题,尤其是捕获慢查询。如果你在 MongoDB Atlas 中托管数据库,Profiler 已集成为 Performance Advisor,界面化显示慢查询数据,并自动推荐索引优化。在启用 Profiler 后,运行你的查询。慢查询或所有操作都会记录在。通过 Profiler,你可以深入了解查询性能,找到瓶颈,优化查询效率!Profiler 收集的所有数据存储在。

yuanpan的专栏 998

把静态前端托管进 SAP BTP:HTML5 Application Deployer 与企业级内容部署全攻略

本文介绍了在SAP BTP Cloud Foundry环境中使用HTML5 Application Repository托管前端静态资源的工程化实践。通过HTML5 Application Deployer工具,结合MTA描述、路由配置和服务实例,实现前后端解耦和标准化部署。文章详细阐述了目录结构、关键配置文件、MTA编排以及构建部署流程,并针对大体积前端资源提供了GACD和异步上传两种解决方案。最后说明了如何与AppRouter协同工作,使部署内容可供终端用户访问。这套方法使前端更新无需重启后端,支持团队

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 156

监控mongo 状态慢查询

mongostat详解 mongostat是mongdb自带的状态检测工具,在命令行下使用。它会间隔固定时间获取mongodb的当前运行状态,并输出。如果你发现数据库突然变慢或者有其他问题的话,你第一手的操作就考虑采用mongostat来查看mongo的状态。 它的输出有以下几列: inserts/s 每秒插入次数 query/s 每秒查询次数 update/s 每秒更新次数 d

lixiaoweihubin的专栏 795

实战封神!YOLOv7 轻量化部署全攻略:ONNX格式转换+TensorRT极致加速(速度直接提升3-5倍,精度无损)

部署核心链路,这是YOLO系列部署的最优解,速度提升3~5倍,精度无损;ONNX是桥梁:解决模型兼容性问题,简化后能去掉冗余节点,是TensorRT加速的前提;TensorRT是核心:NVIDIA显卡的极致加速引擎,FP16量化是速度与精度的最优平衡,无需手动配置,一键开启;轻量化终极组合YOLOv7-tiny + 416尺寸 + TensorRT FP16,速度提升5~8倍,满足所有实时检测场景;避坑核心:转换参数必加,推理尺寸必须一致,engine文件显卡专属。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 308

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

监控mongo状态慢查询

MongoDBMonitoringService(MMS)是Mongodb厂商提供的监控服务,可以在网页和Android客户端上监控你的MongoDB状。Mongodb的命令一般很快就完成,但是在一台繁忙的机器或者有比较慢的命令时,你可以通过db.currentOp()获取当前正在执。果你发现数据库突然变慢或者有其他问题的话,你第一手的操作就考虑采用mongostat来查看mongo的状态。command/s每秒的命令数,比以上插入、查找、更新、删除的综合还多,还统计了别的命令。...

@涂涂博客 915

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

mongo 监控 慢查询 ,索引优化(3)

在 MySQL中,慢查询日志是经常作为我们优化数据库的依据,那在MongoDB中是否有类似的功能呢?答案是肯定的,那就是Mongo Database Profiler.不仅有,而且还有一些比MySQL的SlowQuery Log更详细的信息。它就是我们这篇文章的主题。 db profiling MongoDB支持对DB的请求进行profiling,目前支持3种级别的profiling...

xiaoliuliu2050的专栏 569

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

MongoDB查询性能优化终极指南:使用mongo-hacker进行索引分析和慢查询诊断

你是否经常遇到MongoDB查询速度缓慢的问题?想要快速诊断查询性能瓶颈却无从下手?今天我将为你介绍一款强大的MongoDB Shell增强工具——mongo-hacker,它能帮助你轻松实现**查询性能优化**、**索引分析**和**慢查询诊断**。这款工具专为MongoDB开发者设计,提供了丰富的性能监控功能,让你的数据库优化工作事半功倍! ## 🚀 mongo-hacker:MongoD

gitblog_00154的博客 367

Prisma 数据库连接器(Database Connectors)完全指南:多租户模式、迁移机制与 MySQL/Postgres 配置实战

> 本指南基于 prisma1 仓库官方参考文档 [Overview](https://link.gitcode.com/i/44fe98a63c11ec0a5b572c5582dd569a),系统讲解 Prisma 数据库连接器的职责、多租户(Multitenancy)与迁移(Migrations)两大核心决策,并给出 MySQL 与 Postgres 两种连接器的完整 Docker Compo

gitblog_00149的博客 443

Java语言编程,通过阿里云mongo数据库监控实现数据库的连接池优化

本文的内容比较长,既描述了阿里云对mongodb数据库的监控(着重是连接数指标),以及Mongos的使用及购买的坑,也从Java语言的 Mongo驱动程序作为切入点,分析并总结了支持哪些数据库连接池的配置项。本案例是基于生产实际中遇到的一个棘手问题,希望可以帮助到你。通过本文,让我们对连接数这个指标有更深的体会,它是一个很冷的指标,却非常致命。说它致命,是说我们在遇到程序报错的时候,极容易陷入平常思维,以为是有慢查询,或者程序QPS过高导致程序挂了。

天草二十六 1530

Mongo数据库慢查询功能_mongo慢查询设置集合大小

开启Mongo数据库的慢查询功能 在这里需要注意,Mongo数据库的慢查询数据是存放在一个数据库集合中(system.profile),这个和Mysql数据库是有区别的,如果你不主动创建system.profile这个集合,那这个集合就固定1M大小,当慢查询记录超过1M,就会将历史数据覆盖,循环使用,所以在这里需要根据业务实际情况设置集合大小。这里设置的Profiling级别为1,慢查询阈值为500毫秒。可以看到返回结果是0,Mongo数据库没有开启慢查询功能。这里为了方便测试,将慢查询的级别设置为2。

egregw的博客 464

mongodb 监控

监控: 连接数: echo "db.serverStatus().connections"| mongo --port 40001 -u admin -p 'AdminPass123' --authent...

crriis6873的博客 74
上一篇: Kafka由于ext4的日志问题导致IO.WAIT升高的解决办法
下一篇: MariaDB 多主一从 RDS测试
无影V随风
博客等级 码龄16年 81粉丝 106原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值