返回顶部
首页 > 资讯 > 数据库 >MongoDB数据库性能监控详解
  • 808
分享到

MongoDB数据库性能监控详解

MongoDB数据库数据库性能监控 2023-03-31 17:03:20 808人浏览 薄情痞子
摘要

目录一、mongoDB启动超慢1、启动日常卡住,根本不用为了截屏而快速操作,MonGoDB启动真的超级慢~~2、启动MongoDB配置服务器,间歇性失败。3、查看MongoDB日志,分析“MongoDB启动慢

一、MongoDB启动超慢

1、启动日常卡住,根本不用为了截屏而快速操作,MongoDB启动真的超级慢~~

MongoDB数据库性能监控详解

MongoDB数据库性能监控详解

2、启动MongoDB配置服务器,间歇性失败。

MongoDB数据库性能监控详解

MongoDB数据库性能监控详解

3、查看MongoDB日志,分析“MongoDB启动慢”的原因。

MongoDB数据库性能监控详解

4、耗时“一小时”,MongoDB启动成功!

MongoDB数据库性能监控详解

二、原因分析

在MongoDB关闭之前,有较大的索引建立的操作没有完成,MongoDB就直接shutdown了,等MongoDB再次启动的时候,MongoDB默认会将这个index重建好,重建期间处于startup状态。

由于不清楚重建索引需要多久,因此可以通过重启mongod时加上–noIndexBuildRetry参数来跳过索引重建。等启动完成后,再创建这个索引。

下面从几方面,监控一下MongoDB的性能问题。

三、监控MongoDB内存使用情况

MongoDB数据库性能监控详解

  • 常驻内存: 是MongoDB在RAM中显式拥有的内存。如果查询一个集合数据,MongoDB会将其放入常驻内存中,MongoDB会获得其地址,这个地址不是RAM中数据的真实地址,而是一个虚拟地址。MongoDB可以将它传递给内核,内核会查找出数据的真实位置。如果内核需要从内存中清理缓存,MongoDB仍然可以通过该地址对其进行访问。MongoDB会向内核请求内存,然后内核会查看数据缓存,如果发现数据不存在,就会产生缺页错误并将数据复制到内存中,最后再返给MongoDB。
  • MongoDB的虚拟内存: 是操作系统提供的一种抽象,它对软件进程隐藏了物理存储的细节。每个进程都可以看到一个连续的内存地址空间。在Ops Manager中,MongoDB的虚拟内存是映射内存的两倍。
  • MongoDB的映射内存: 包含MongoDB曾经访问过的所有数据。

MongoDB数据库性能监控详解

四、监控MongoDB磁盘空间

当磁盘空间不足时,可以进行如下操作:

可以添加一个分片;
删除未使用的索引;
可以执行压缩操作;
关闭副本集成员,将其数据复制到更大的磁盘中挂载;
用较大驱动器的成员替换副本集中的成员;

五、MongoDB常用命令

1、MongoDB获取系统信息

db.hostInfo()

MongoDB数据库性能监控详解

2、MongoDB获取系统内存情况

db.serverStatus().mem

MongoDB数据库性能监控详解

3、MongoDB获取连接数信息

db.serverStatus().connections

MongoDB数据库性能监控详解

4、MongoDB获取全局锁信息

db.serverStatus().globalLock

MongoDB数据库性能监控详解

5、MongoDB获取操作统计计数器

db.serverStatus().opcounters

MongoDB数据库性能监控详解

6、MongoDB获取数据库状态信息

db.stats()

MongoDB数据库性能监控详解

以上是MongoDB的重要指标,通过这些指标我们可以了解到MongoDB的运行状态,评估数据库的健康程度,并快速确定实际项目中遇到的性能瓶颈。

比如项目中遇到的MongoSocketReadTimeoutException:

MongoDB数据库性能监控详解

MongoDB数据库性能监控详解

六、MongoDB持久性

复制延迟是指从节点无法跟上主节点的速度。

从节点一个操作的时间减去主节点此操作的时间,就是复制延迟。延迟应该尽可能的接近0,并且通常是毫秒级的。

备份操作通常会将所有数据读入内存,因此,备份操作通常应该在副本集从节点而不是主节点进行,如果是单机MongoDB,则应该在空间时间进行备份,比如深夜凌晨。

持久性是数据库必备的一种特性,想象一下,如果数据库不具备持久性,如果数据库重启,数据全部丢失,太可怕了,不敢想。

为了在服务器发生故障时提供持久性,MongoDB使用预写式日志机制,英文简称 WAL。WAL是数据库系统中一种常见的持久性技术。在数据存入数据库之前,将这些更改操作写到磁盘上。

从MongoDB4.0开始,执行写操作时,MongoDB会使用与oplog相同的格式创建日志。oplog语句具有幂等性,不管执行多少次,结果都是一样的。

MongoDB还维护了日志和数据库数据文件的内存视图。默认情况,每50毫秒会将日志条目刷新到磁盘上,每60秒会将数据库文件刷新到磁盘上。刷新数据的时间60秒间隔被称为检查点。日志用于将上一个检查点之后的数据提供持久性。MongoDB的持久性就是在发生故障时,重启之后,将日志中的语句重新执行一遍,以保证在关闭前丢失的数据重新刷新到MongoDB中。

MongoDB会在data目录下创建一个journal的子目录,WiredTiger日志文件的名称为WiredTigerLog.<sequence>。sequence是一个从0 000 000 001开始的数字。

MongoDB数据库性能监控详解

MongoDB会对写入的日志进行压缩,日志文件限制的最大大小为100MB。如果大于100MB,MongoDB就会自动创建一个新的日志文件,由于日志文件只需在上次检查点之后恢复数据,因此在新的检查点写入完成时,旧的日志文件就会被删除。

以上就是MongoDB数据库性能监控详解的详细内容,更多关于MongoDB数据库性能监控的资料请关注我们其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: MongoDB数据库性能监控详解

本文链接: https://lsjlt.com/news/201259.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MongoDB数据库性能监控详解
    目录一、MongoDB启动超慢1、启动日常卡住,根本不用为了截屏而快速操作,MongoDB启动真的超级慢~~2、启动MongoDB配置服务器,间歇性失败。3、查看MongoDB日志,分析“MongoDB启动慢...
    99+
    2023-03-31
    MongoDB数据库 数据库性能监控
  • mongodb 性能监控
    使用/var/soft/mongodb2.2/bin/mongostat --port 端口号可以实时监控·inserts/s 每秒插入次数 ·query/s 每秒查询次数 ·update/s 每秒更新次数...
    99+
    2024-04-02
  • mongodb性能监控
    mongostat: mongostat -u admin --authenticationDatabase admin ...
    99+
    2024-04-02
  • Netdata如何监控数据库性能
    要使用Netdata监控数据库性能,您需要安装Netdata并配置适当的插件来监控您的数据库。以下是一些常见数据库的监控方法: ...
    99+
    2024-04-02
  • PHP与MongoDB性能监控
    随着互联网和移动互联网的飞速发展,Web应用越来越重要,而PHP语言因其易学易用的特点,成为了Web应用开发的一个主流语言。而在数据存储方面,MongoDB因其高性能和可扩展性被越来越多的开发者选择。然而,PHP与MongoDB的应用性能监...
    99+
    2023-05-17
    PHP MongoDB 性能监控
  • MySQL数据库的性能监控方法
    本篇内容主要讲解“MySQL数据库的性能监控方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL数据库的性能监控方法”吧! SHOW STATUS; ...
    99+
    2024-04-02
  • 如何监控Aurora数据库的性能
    监控Aurora数据库的性能是非常重要的,可以帮助您及时发现并解决数据库性能问题。以下是一些监控Aurora数据库性能的方法: ...
    99+
    2024-04-02
  • Oracle数据库中如何监控性能
    Oracle数据库可以通过多种方式来监控性能,以下是一些常见的方法: 使用Oracle Enterprise Manager(O...
    99+
    2024-04-09
    Oracle
  • DB2中怎么监控数据库性能
    在DB2中,可以通过以下几种方式来监控数据库性能: 使用DB2自带的监控工具:DB2提供了一些内置的监控工具,如db2top、d...
    99+
    2024-03-07
    DB2 数据库
  • mongodb自带web性能监控
    mongodb自带一个web界面监控。配置比较简单,只需要在启动时候加参数:--httpinterface 或者将httpinterface=true写到配置文件中 重启。在浏览器中输入:ip:mongod...
    99+
    2024-04-02
  • MongoDB实战(8)性能监控
    一、mongosniff此工具可以从底层监控到底有哪些命令发送给了 MongoDB 去执行,从中就可以进行分析:以 root 身份执行:./mongosniff --source NET lo然后其会监控位...
    99+
    2024-04-02
  • Zabbix3.0.2监控Mongodb性能状态
    一.原理Zabbix监控mongodb的原理是通过echo "db.serverStatus()" | mongo admin 来查看mongodb的状态二.服务器配置1)添加mongo的全局变量# vim...
    99+
    2024-04-02
  • 如何监控Amazon Aurora数据库的性能
    要监控Amazon Aurora数据库的性能,可以采取以下步骤: 使用Amazon CloudWatch:CloudWatch是A...
    99+
    2024-04-09
    Amazon
  • MongoDB监控五 诊断MongoDB性能问题
    连接数 ...
    99+
    2024-04-02
  • mongodb 监控项详解(mms)
    mongodb mms监控项 Opcounters :     当前有执行命令的操作(command,query,update,delete,g...
    99+
    2024-04-02
  • 如何监控和调试SQLite数据库性能
    监控和调试SQLite数据库性能可以通过以下方法实现: 使用SQLite内置的性能分析工具:SQLite提供了一些性能分析工具,可...
    99+
    2024-04-09
    SQLite
  • PostgreSQL中怎么监控数据库活动和性能
    要监控PostgreSQL数据库的活动和性能,可以使用以下方法: 使用pg_stat_activity视图来查看当前正在执行的活...
    99+
    2024-04-09
    PostgreSQL 数据库
  • 怎么监控和调优Db2数据库的性能
    监控和调优Db2数据库的性能是非常重要的,可以通过以下方法进行: 使用Db2的监控工具:Db2提供了一系列的监控工具,如Db2 ...
    99+
    2024-03-07
    Db2
  • 如何监控和调优Cassandra数据库的性能
    要监控和调优Cassandra数据库的性能,可以使用以下方法: 使用监控工具:使用监控工具如DataStax OpsCenter...
    99+
    2024-04-09
    Cassandra
  • MariaDB中如何监控数据库服务器的性能
    要监控MariaDB数据库服务器的性能,可以使用以下方法: 使用MariaDB的性能监控工具:MariaDB提供了一些性能监控工具...
    99+
    2024-03-15
    MariaDB
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作