MongoDB性能问题排查
2022/6/4 2:20:13
本文主要是介绍MongoDB性能问题排查,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
mongostat
间隔固定时间(每秒)输出mongodb的当前运行状态。
./bin/mongostat --port [port] -u qingteng -p [password] --authenticationDatabase admin
输出字段说明:
字段名称 |
说明 |
insert | 每秒插入次数 |
query | 每秒查询次数 |
update | 每秒更新次数 |
delete | 每秒删除次数 |
getmore | 每秒执行getmore次数 |
command | 每秒的命令数,除了插入、查找、更新、删除命令统计外,还统计了别的命令 |
dirty | 脏数据字节的缓存百分比(超过20%时阻塞新请求) |
used | 正在使用的缓存百分比(超过95%时阻塞新请求) |
flushes |
对于WiredTiger引擎来说,是指checkpoint的触发次数在一个轮询间隔期间 对于MMAPv1 引擎来说,是指每秒执行fsync将数据写入硬盘的次数 一般flushes都是0,间断性会是1, 通过计算两个1之间的间隔时间,可以大致了解多长时间flush一次。 flush开销是很大的,如果频繁的flush,就需要排查一下原因了 |
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 | 时间戳 |
mongotop
输出每个集合压力状态
间隔固定时间(每秒,若需要每3秒,可以在命令最后空格 3 即可)输出mongodb的当前每个集合的读写耗时。
./bin/mongotop --port [port] -u qingteng -p [password] --authenticationDatabase admin
输出字段说明:
字段名称 | 说明 |
---|---|
ns | 集合名称 |
total | 读写花费时间(ms) |
read | 读花费时间 |
write | 写花费时间 |
这篇关于MongoDB性能问题排查的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24MongoDB资料:新手入门完全指南
- 2024-12-20go-zero 框架的 RPC 服务 启动start和停止 底层是怎么实现的?-icode9专业技术文章分享
- 2024-12-19Go-Zero 框架的 RPC 服务启动和停止的基本机制和过程是怎么实现的?-icode9专业技术文章分享
- 2024-12-18怎么在golang中使用gRPC测试mock数据?-icode9专业技术文章分享
- 2024-12-15掌握PageRank算法核心!你离Google优化高手只差一步!
- 2024-12-15GORM 中的标签 gorm:"index"是什么?-icode9专业技术文章分享
- 2024-12-11怎么在 Go 语言中获取 Open vSwitch (OVS) 的桥接信息(Bridge)?-icode9专业技术文章分享
- 2024-12-11怎么用Go 语言的库来与 Open vSwitch 进行交互?-icode9专业技术文章分享
- 2024-12-11怎么在 go-zero 项目中发送阿里云短信?-icode9专业技术文章分享
- 2024-12-11怎么使用阿里云 Go SDK (alibaba-cloud-sdk-go) 发送短信?-icode9专业技术文章分享