MongoDB性能分析

2023-09-18 17:15:25

mongostat

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

它的输出有以下几列:

  • inserts/s : 每秒插入次数
  • query/s : 每秒查询次数
  • update/s : 每秒更新次数
  • delete/s : 每秒删除次数
  • getmore/s : 每秒执行getmore次数
  • command/s : 每秒的命令数,比以上插入、查找、更新、删除的综合还多,还统计了别的命令
  • flushs/s : 每秒执行fsync将数据写入硬盘的次数。
  • mapped/s : 所有的被mmap的数据量,单位是MB,
  • vsize : 虚拟内存使用量,单位MB
  • res : 物理内存使用量,单位MB
  • faults/s : 每秒访问失败数(只有Linux有),数据被交换出物理内存,放到swap。不要超过100,否则就是机器内存太小,造成频繁swap写入。此时要升级内存或者扩展
  • locked : % 被锁的时间百分比,尽量控制在50%以下吧
  • idx miss : % 索引不命中所占百分比。如果太高的话就要考虑索引是不是少了
  • q t|r|w : 当Mongodb接收到太多的命令而数据库被锁住无法执行完成,它会将命令加入队列。这一栏显示了总共、读、写3个队列的长度,都为0的话表示mongo毫无压力。高并发时,一般队列值会升高。
  • conn : 当前连接数
  • time : 时间戳
     

db.serverStatus()

##  参考
https://www.2cto.com/database/201501/370191.html

慢查询

在 MongoDB 中慢查询功能(Profiling)设置有三个级别,分别代表如下含义:

  • 0:代表关闭,不收集任何慢查询
  • 1:收集慢查询数据,默认收集超过100毫秒的慢查询
  • 2:收集任何操作记录数据
## 超过2000 毫秒的查询被记录
db.setProfilingLevel(1, { slowms: 2000 })

## 慢查询验证
db.getProfilingStatus()

##
db.system.profile.find({"millis":{$gte:8000}}).limit(10).sort( { ts : -1 } ).pretty()


## 获取超过0.5秒的慢查询
db.system.profile.find({millis:{$gt:500}})

## 获取最新的慢查询
db.system.profile.find().sort({$natural:-1})

## 关闭慢查询
db.setProfilingLevel(0)

更多推荐

CentOS7 防火墙(firewall)的操作命令

安装:yuminstallfirewalld1、firewalld的基本使用启动:systemctlstartfirewalld查看状态:systemctlstatusfirewalld禁用,禁止开机启动:systemctldisablefirewalld停止运行:systemctlstopfirewalld2.配置f

FasterTransformer在linux系统中的安装教程(ubuntu系统)

参考资料官方文档安装过程在官方文档中,其对安装流程已经表述的比较详细,主要是安装nvidia-docker和安装编译FasterTransformer。其中难点主要是在安装nvidia-docker上。当然其实也可以不安装nvidia-docker,直接使用配置好的cuda环境配置,但是这样的话我们就无法使用docke

Python运算符、函数与模块和程序控制结构

给我家憨憨写的python教程——雁丘Python运算符、函数与模块和程序控制结构关于本专栏一运算符1.1位运算符1.1.1按位取反1.1.2按位与1.1.3按位或1.1.4按位异或1.1.5左移位1.2关系运算符1.3运算顺序1.4运算方向二函数与模块2.1内建函数2.2库函数2.2.1标准库函数2.2.3第三方库2

windows系统使用软件异地同步数据(灾备)

Syncthing是一个开源文件同步工具,可以在多台设备之间实时同步文件或文件夹,官方网站:Syncthing下载地址:Syncthing|Downloads,一般推荐下载图形界面SyncTrayzor。官方下载地址:https://github.com/canton7/SyncTrayzor/releases/dow

【python数据分析基础】—对列操作:获取DataFrame不同的类型columns

文章目录前言一、生成不同类型的列名1.获取数组类型的结果2.获取list类型的结果二、实际应用前言在DataFrame进行数据分析时,我们时常会想对DataFrame的所有列进行数据清洗操作,比如转换不同字段的数据类型,但如果DataFrame字段比较多,一列列数据引用进行数据处理显现效率比较低,使用DataFrame

Python爬虫:获取必应图片的下载链接

文章目录1.前言2.实现思路3.运行结果1.前言首先,说明一下,本篇博客内容可能涉及到版权问题,为此,小编只说明一下实现思路,至于全部参考代码,小编不粘贴出来。不过,小编会说明详细一些,真心能够帮助到一些读者。仅供参考,请莫用于商业活动!2.实现思路在必应上搜索图片,通过向下滚动滚动条,从而刷新出新的图片出来。和百度图

【产品运营】如何做好B端产品规划

产品规划是基于当下掌握的多维度信息,为追求特定目的,而制定的产品资源投入计划。产品规划是基于当下掌握的多维度信息(客户需求、市场趋势、竞争对手、竞争策略等),为追求特定目的(商业增长、客户满意等),而制定的产品资源投入计划。面向长期的、宏观的可称为产品战略规划,面向短期的、具体的可称为版本规划或迭代计划。产品战略规划周

使用Node构建私人代理池

在进行大规模数据采集时,经常会遇到网站反爬虫机制导致爬虫被封的问题。为了解决这个困扰,本文将向大家介绍如何利用Node.js构建私人代理池,提供稳定的代理,实现高效、可靠的爬虫操作。跟随本文一起学习,拥有解封爬虫的终极利器!一、为什么需要私人代理池?使用公共的免费代理可能会面临诸多问题,如不稳定、速度慢、容易被封禁等。

科普:什么是视频监控平台?如何应用在场景中?

随着科技的发展,监控无处不在,就像一张密不透风的网,将生活中的角角落落都编织在一起。可是,你真的知道什么是安防视频监控平台吗?它可不止是一个简单的通电摄像头,如今的视频监控平台,涵盖了无数精密细致的算法与技术,是通过集成视频监控设备与软件系统,对指定区域或场所进行实时监控与数据管理的平台。下面就给大家介绍一下常见的安防

STM32 ADC介绍和应用

目录1.ADC是什么?2.ADC的性能指标3.ADC特性4.ADC通道5.ADC转换顺序6.ADC触发方式7.ADC转化时间8.ADC转化模式扫描模式单次转换/连续转换9.ADC实验使用ADC读取烟雾传感器的值代码实现思路:1.ADC是什么?全称:Analog-to-DigitalConverter,指模拟/数字转换器

奇富大模型获新应用方向,AI专家加速金融行业智能化

近日,由奇富科技推出的大模型应用在研发效能,大数据分析等领域斩获新突破。毓智AI专家以奇富大模型为底座,面向研发效能和大数据分析等应用场景,结合资深技术、大数据分析师的专业能力与数据沉淀,形成金融领域的“AI专家”。目前,这一大模型应用,已在技术研发与商业分析两大方向展现出极高价值。作为金融科技行业内首屈一指的技术驱动

热文推荐