当前位置: 首页 > article >正文

MongoDB调优利器:掌握性能分析工具mongostat

文章目录

  • 一、mongostat定义
  • 二 、输出详解

一、mongostat定义

mongostat是MongoDB自带的性能分析工具,用于检测mongodb的运行状态。

Suwie/ # mongostat --help
Usage:
mongostat <options> <polling interval in seconds>
Monitor basic MongoDB server statistics.
See http://docs.mongodb.org/manual/reference/program/mongostat/ for more information.
general options:
--help print usage
--version print the tool version and exit
verbosity options:
-v, --verbose=<level> more detailed log output (include multiple times for more verbosity, e.g. -vvvvv, or specify a numeric value, e.g. --verbose=N)
--quiet hide all log output
connection options:
-h, --host=<hostname> mongodb host to connect to (setname/host1,host2 for replica sets)
--port=<port> server port (can also use --host hostname:port)
ssl options:
--ssl connect to a mongod or mongos that has ssl enabled
--sslCAFile=<filename> the .pem file containing the root certificate chain from the certificate authority
--sslPEMKeyFile=<filename> the .pem file containing the certificate and key
--sslPEMKeyPassword=<password> the password to decrypt the sslPEMKeyFile, if necessary
--sslCRLFile=<filename> the .pem file containing the certificate revocation list
--sslAllowInvalidCertificates bypass the validation for server certificates
--sslAllowInvalidHostnames bypass the validation for server name
--sslFIPSMode use FIPS mode of the installed openssl library
authentication options:
-u, --username=<username> username for authentication
-p, --password=<password> password for authentication
--authenticationDatabase=<database-name> database that holds the users credentials
--authenticationMechanism=<mechanism> authentication mechanism to use
stat options:
--noheaders dont output column names
-n, --rowcount=<count> number of stats lines to print (0 for indefinite)
--discover discover nodes and display stats for all
--http use HTTP instead of raw db connection
--all all optional fields
--json output as JSON rather than a formatted table

举例说明:
10秒数据,每2秒钟输出
mongostat -h 192.168.10.22 --port 27018 --rowcount 10 2
100秒数据,每5秒输出
mongostat -h 192.168.10.22 --port 27018 -n 100 5
以json格式输出
mongostat -h 192.168.10.22 --port 27018 -n 600 10 --json
输出如下:
在这里插入图片描述

二 、输出详解

字段名称解释描述
insert每秒插入次数
query每秒查询次数
update每秒更新次数
delete每秒删除次数
getmore每秒执行getmore次数
command每秒的命令数,除了插入、查找、更新、删除命令统计外,还统计了别的命令
flushes对于WiredTiger引擎来说,是指checkpoint的触发次数在一个轮询间隔期间,对于MMAPv1 引擎来说,是指每秒执行fsync将数据写入硬盘的次数。
一般flushes都是0,间断性会是1, 通过计算两个1之间的间隔时间,可以大致了解多长时间flush一次。flush开销是很大的,如果频繁的flush,就需要排查一下原因了[每秒执行fsync将数据写入硬盘的次数]
mapped所的被mmap的数据量
vsize虚拟内存使用量(在mongostat最后一次调用的总数据)
res物理内存使用量(在mongostat最后一次调用的总数据)vsize一般不会有大的变动, res会慢慢的上升,如果res经常突然下降,就需要排查一下是否存在其他的程序正在消费内存
faults每秒访问失败数,与内存swap有关
qrw客户端读写等待队列数量,高并发时,一般队列值会升高
arw客户端读写活跃个数
net_in网络带宽压力,MongoDB实例的网络进流量
net_out网络带宽压力,MongoDB实例的网络出流量
conn打开连接的总数,是qr,qw,ar,aw的总和,MongoDB为每一个连接创建一个线程,线程的创建与释放也会有开销,所以尽量要适当配置连接数的启动参数maxIncomingConnections
time时间戳

注1:正常情况mongostat输出used部分不建议超出80%,当内存used超过80%时,说明内存压力过大,进而会引起SQL查询性能下降。(现象:正常的SQL变成慢查询)这个时候,就需要考虑升级内存,缓解内存压力!

注2:dirty是cachesize里的脏页,写入量或者QPS比较高的情况,这个比例会增大。

其他说明:

  • q t|r|w #当Mongodb接收到太多的命令而数据库被锁住无法执行完成,它会将命令加入队列。这一栏显示了总共、读、写3个队列的长度,都为0的话表示mongo毫无压力。高并发时,一般队列值会升高。
  • qr #客户端等待从MongoDB实例读数据的队列长度
  • qw #客户端等待从MongoDB实例写入数据的队列长度
  • ar #执行读操作的活跃客户端数量
  • aw #执行写操作的活客户端数量

http://www.kler.cn/a/404621.html

相关文章:

  • RocketMQ: 集群部署注意事项
  • reactflow 中 useStoreApi 模块作用
  • 大语言模型---Llama模型文件介绍;文件组成
  • 【每日 C/C++ 问题】
  • Electron开发构建工具electron-vite(alex8088)添加VueDevTools(VitePlugin)
  • golang调用webview,webview2,go-webview2
  • 字节跳动青训营刷题笔记14
  • Spark 分布式计算中网络传输和序列化的关系(二)
  • leetcode - 2516. Take K of Each Character From Left and Right
  • 2024年亚太C题第二版本二问题1求解过程+代码运行以及问题2-4超详细思路分析
  • 第三百三十节 Java网络教程 - Java网络UDP服务器
  • uni-app快速入门(十)--常用内置组件(下)
  • 查看docker日志 journalctl -u docker.service
  • Modern Effective C++ Item 11:优先考虑使用deleted函数而非使用未定义的私有声明
  • Webserver回顾
  • 【AI知识】两类最主流AI应用(文生图、ChatGPT)中的目标函数
  • React第五节 组件三大属性之 props 用法详解
  • ts: 定义一个对象接收后端返回对象数据,但是报错了有红色的红线为什么
  • 安全测试必学神器 --BurpSuite 安装及使用实操
  • Go 工具链详解(八):go telemetry
  • Wallpaper壁纸制作学习记录05
  • 【JavaSE 网络编程和日期与时间知识总结】
  • Java Web应用中的跨站请求伪造(CSRF)防御策略
  • 关于一次开源java spring快速开发平台项目RuoYi部署的记录
  • hj 212 协议解包php解包,
  • 从0开始的数据结构速过——番外(1)