MongoDB延迟查询

news/2024/9/18 14:55:03/ 标签: 运维

在 MongoDB 中,查看副本集成员之间的副本延迟可以通过以下步骤进行:

  1. 使用 rs.status() 命令
    这个命令提供了副本集的详细状态信息,包括每个成员的延迟情况。在 MongoDB shell 中,你可以执行以下命令:

    rs.status()
    

    这个命令会返回一个包含副本集所有成员状态的对象。在返回的对象中,每个成员都有一个 optime 字段,显示了该成员最后应用的操作的时间戳。

  2. 查看 optime 字段
    optime 字段是一个包含两个部分的对象:ts(timestamp)和 t(term)。ts 是一个 Timestamp 对象,表示最后应用的操作的时间。

  3. 比较主节点和从节点的 optime
    主节点的 optime 应该总是最新的,而从节点的 optime 可能会有所延迟。你可以通过比较主节点和从节点的 optime 来估计延迟。

  4. 使用 rs.printReplicationInfo() 命令
    这个命令提供了一个更易于阅读的副本集状态报告,包括每个成员的延迟信息。在 MongoDB shell 中,执行以下命令:

    rs.printReplicationInfo()
    

    这个命令会打印出副本集的状态信息,包括每个成员的延迟。

  5. 监控延迟
    如果你想要持续监控副本集的延迟,你可以定期运行这些命令,或者使用 MongoDB 的监控工具,如 MongoDB Cloud Manager 或第三方监控解决方案。

请注意,副本延迟可能会因为网络延迟、磁盘 I/O、CPU 使用率等因素而变化。如果你发现延迟异常高,可能需要检查副本集成员的性能和配置。

mongo-baa26600-replica0:SECONDARY> rs.printReplicationInfo()
configured oplog size:   10240MB
log length start to end: 370018secs (102.78hrs)
oplog first event time:  Fri Sep 06 2024 10:54:09 GMT+0800 (CST)
oplog last event time:   Tue Sep 10 2024 17:41:07 GMT+0800 (CST)
now:                     Tue Sep 10 2024 17:41:14 GMT+0800 (CST)
mongo-baa26600-replica0:SECONDARY> rs.status()
{"set" : "mongo-baa26600-replica0","date" : ISODate("2024-09-10T09:42:31.340Z"),"myState" : 2,"term" : NumberLong(162),"syncSourceHost" : "10.10.98.127:3692","syncSourceId" : 2,"heartbeatIntervalMillis" : NumberLong(2000),"majorityVoteCount" : 2,"writeMajorityCount" : 2,"votingMembersCount" : 3,"writableVotingMembersCount" : 3,"optimes" : {"lastCommittedOpTime" : {"ts" : Timestamp(1725961346, 1),"t" : NumberLong(162)},"lastCommittedWallTime" : ISODate("2024-09-10T09:42:26.430Z"),"readConcernMajorityOpTime" : {"ts" : Timestamp(1725961346, 1),"t" : NumberLong(162)},"readConcernMajorityWallTime" : ISODate("2024-09-10T09:42:26.430Z"),"appliedOpTime" : {"ts" : Timestamp(1725961346, 1),"t" : NumberLong(162)},"durableOpTime" : {"ts" : Timestamp(1725961346, 1),"t" : NumberLong(162)},"lastAppliedWallTime" : ISODate("2024-09-10T09:42:26.430Z"),"lastDurableWallTime" : ISODate("2024-09-10T09:42:26.430Z")},"electionParticipantMetrics" : {"votedForCandidate" : true,"electionTerm" : NumberLong(162),"lastVoteDate" : ISODate("2024-09-10T08:55:47.309Z"),"electionCandidateMemberId" : 2,"voteReason" : "","lastAppliedOpTimeAtElection" : {"ts" : Timestamp(1725958536, 1),"t" : NumberLong(161)},"maxAppliedOpTimeInSet" : {"ts" : Timestamp(1725958536, 1),"t" : NumberLong(161)},"priorityAtElection" : 1,"newTermStartDate" : ISODate("2024-09-10T08:55:47.311Z"),"newTermAppliedDate" : ISODate("2024-09-10T08:55:48.546Z")},"members" : [{"_id" : 0,"name" : "10.10.98.123:7315","health" : 1,"state" : 2,"stateStr" : "SECONDARY","uptime" : 4539,"optime" : {"ts" : Timestamp(1725961346, 1),"t" : NumberLong(162)},"optimeDurable" : {"ts" : Timestamp(1725961346, 1),"t" : NumberLong(162)},"optimeDate" : ISODate("2024-09-10T09:42:26Z"),"optimeDurableDate" : ISODate("2024-09-10T09:42:26Z"),"lastHeartbeat" : ISODate("2024-09-10T09:42:30.831Z"),"lastHeartbeatRecv" : ISODate("2024-09-10T09:42:30.318Z"),"pingMs" : NumberLong(0),"lastHeartbeatMessage" : "","syncSourceHost" : "10.10.98.127:3692","syncSourceId" : 2,"infoMessage" : "","configVersion" : 111017,"configTerm" : -1},{"_id" : 1,"name" : "10.10.98.125:4933","health" : 1,"state" : 2,"stateStr" : "SECONDARY","uptime" : 86381,"optime" : {"ts" : Timestamp(1725961346, 1),"t" : NumberLong(162)},"optimeDate" : ISODate("2024-09-10T09:42:26Z"),"syncSourceHost" : "10.10.98.127:3692","syncSourceId" : 2,"infoMessage" : "","configVersion" : 111017,"configTerm" : -1,"self" : true,"lastHeartbeatMessage" : ""},{"_id" : 2,"name" : "10.10.98.127:3692","health" : 1,"state" : 1,"stateStr" : "PRIMARY","uptime" : 86378,"optime" : {"ts" : Timestamp(1725961346, 1),"t" : NumberLong(162)},"optimeDurable" : {"ts" : Timestamp(1725961346, 1),"t" : NumberLong(162)},"optimeDate" : ISODate("2024-09-10T09:42:26Z"),"optimeDurableDate" : ISODate("2024-09-10T09:42:26Z"),"lastHeartbeat" : ISODate("2024-09-10T09:42:30.830Z"),"lastHeartbeatRecv" : ISODate("2024-09-10T09:42:31.332Z"),"pingMs" : NumberLong(0),"lastHeartbeatMessage" : "","syncSourceHost" : "","syncSourceId" : -1,"infoMessage" : "","electionTime" : Timestamp(1725958547, 1),"electionDate" : ISODate("2024-09-10T08:55:47Z"),"configVersion" : 111017,"configTerm" : -1}],"ok" : 1,"$clusterTime" : {"clusterTime" : Timestamp(1725961346, 1),"signature" : {"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),"keyId" : NumberLong(0)}},"operationTime" : Timestamp(1725961346, 1)
}

根据提供的 rs.printReplicationInfo()rs.status() 命令的输出,我们可以分析 MongoDB 副本集的当前状态和副本延迟情况。

  1. 副本集状态

    • rs.status() 命令显示副本集的名称为 mongo-baa26600-replica0
    • 当前实例的状态 (myState) 为 2,表示这是一个从节点(SECONDARY)。
    • 同步源主机 (syncSourceHost) 是 10.10.98.127:3692,这是当前从节点用来同步数据的主节点。
  2. 副本延迟

    • oplog 的大小配置为 10240MB,这为日志记录提供了较大的空间。
    • oplog 的日志长度从开始到结束为 370018 秒,大约 102.78 小时。
    • oplog 的第一个事件时间是 Fri Sep 06 2024 10:54:09 GMT+0800 (CST),最后一个事件时间是 Tue Sep 10 2024 17:41:07 GMT+0800 (CST)
    • 当前时间是 Tue Sep 10 2024 17:41:14 GMT+0800 (CST)
  3. 成员状态

    • 有三个成员,其中 10.10.98.127:3692 是主节点(PRIMARY),状态为 1
    • 其他两个成员(10.10.98.123:731510.10.98.125:4933)都是从节点(SECONDARY),状态为 2
    • 所有成员的 optime(最后应用的操作时间)都是 Timestamp(1725961346, 1),这表明所有成员都同步到了相同的操作时间戳。
  4. 副本延迟分析

    • rs.status() 的输出中,我们可以看到所有成员的 appliedOpTime(已应用的操作时间)都是相同的,这意味着没有副本延迟,或者延迟非常小,可以忽略不计。
    • 如果从节点的 appliedOpTime 落后于主节点的 optime,那么差值就是副本延迟。
  5. 选举信息

    • 最近一次选举发生在 ISODate("2024-09-10T08:55:47.309Z"),选举时使用的 optimeTimestamp(1725958536, 1)
  6. 健康和连接状态

    • 所有成员的 health 都是 1,表示它们都是健康的。
    • lastHeartbeatlastHeartbeatRecv 时间戳显示了最近一次心跳的时间,这有助于确认副本集成员之间的通信是正常的。

总结来说,根据这些信息,副本集看起来是健康的,所有成员都同步到了相同的操作时间戳,没有显著的副本延迟。这是一个正常运行的副本集的迹象。如果需要进一步的延迟监控,可以考虑使用更详细的监控工具或定期检查这些指标。


http://www.ppmy.cn/news/1525152.html

相关文章

从搜索热度上看Arcgis的衰退

Arcgis已被qgis快速赶上 google trends是一个google综合了每日的搜索情况的统计网站,可以追踪从2004年开始各个关键字的搜索热度。 我用arcgis和qgis作为对比,简单探索了arcgis和qgis的全球相关热度。 假设,搜索arcgis越高的区域&#xff…

一文教你弄懂网络协议栈以及报文格式

文章目录 OSI七层网络协议栈示意图1. 应用层(Application Layer)2. 表示层(Presentation Layer)3. 会话层(Session Layer)4. 传输层(Transport Layer)5. 网络层(Network …

深入理解全连接层:从线性代数到 PyTorch 中的 nn.Linear 和 nn.Parameter

文章目录 数学概念(全连接层,线性层)nn.Linear()nn.Parameter()Q1. 为什么 self.weight 的权重矩阵 shape 使用 ( out_features , in_features ) (\text{out\_features}, \text{in\_features}) (out_features,in_features)而不是 ( in_featur…

5款免费版文章生成器,自动生成文章更省创作精力

在自媒体创作中,随着不断的内容输出,让许多创作者都面临着时间和精力的双重压力。而免费版文章生成器的出现,犹如黑暗中的一束光,为创作者们带来了新的希望。免费版文章生成器能够以高效便捷的方式,帮助创作者节省大量…

DevExpress WinForms v24.1新版亮点:功能区、数据编辑器全新升级

DevExpress WinForms拥有180组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜…

Redis面对数据量庞大处理方法

当Redis面对数据量庞大时,其应对策略需要从多个维度出发,包括数据分片、内存优化、持久化策略、使用集群、硬件升级、数据淘汰策略、合理设计数据结构以及监控系统性能等。以下是对这些策略的详细阐述,以期提供不少于2000字的深入解答。 一、…

2024伊语IM即时通讯源码/im商城系统/纯源码IM通讯系统安卓+IOS前端纯原生源码

一、端口说明、域名解析及服务器配置要求 1.1端口说明 使用二级域名映射的情况下 使用端口说明3306数据导入是可以开放 后期关闭 或者直接在服务器上面导入6379不用对外开放9903需要开放80需要开放 1.2 子域名说明: api.xxx.com接口 im.xxx.com通讯 web.xxx.…

[Day 72] 區塊鏈與人工智能的聯動應用:理論、技術與實踐

區塊鏈在跨境支付中的應用 跨境支付一直是全球經濟中極具挑戰的領域。傳統的跨境支付系統通常需要數天時間來處理交易,涉及的中間機構多且手續費昂貴。然而,區塊鏈技術的出現為解決這些問題提供了一條嶄新的途徑。本文將探討區塊鏈在跨境支付中的應用&a…

linux中vim常用命令大全

在Linux系统中,Vim是一款功能强大的文本编辑器,广泛用于代码编写、文档编辑等多种场景。Vim以其高效的编辑能力和丰富的命令集著称。以下是Vim编辑器中常用命令的详细大全,旨在帮助用户更高效地利用Vim进行文本编辑。 一、启动与退出Vim 启动…

JAVA开源项目 校园管理系统 计算机毕业设计

本文项目编号 T 026 ,文末自助获取源码 \color{red}{T026,文末自助获取源码} T026,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 管…

Linux杂项知识

Linux的启动过程 Linux 的启动过程大致可以分为以下几个阶段: 1. BIOS/UEFI 加电自检 当计算机加电时,BIOS 或 UEFI 会首先执行一系列的硬件自检(POST,Power-On Self Test),检查系统是否正常运行。接下来…

Ansible自动化部署kubernetes集群

机器环境介绍 1.1. 机器信息介绍 IP hostname application CPU Memory 192.168.204.129 k8s-master01 etcd,kube-apiserver,kube-controller-manager,kube-scheduler,kubelet,kube-proxy,containerd 2C 4G 192.168.204.130 k8s-w…

Java小白一文讲清Java中集合相关的知识点(五)

Set接口和常用方法 基本介绍 无序(添加和取出的顺序不一样),没有索引不允许重复元素,所以最多包含一个nullJDK API 中Set接口的实现类有: public static void main(String[] args) {//1.以set接口的实现类HashSet来讲…

手机玩机常识-------诺基亚系列机型3/5/6/7/8详细的刷机教程步骤 手机参考救砖刷机教程

诺基亚手机 诺基亚(Nokia Corporation),成立于1865年,是一家主要从事移动通信设备生产和相关服务的手机公司 ,总部位于芬兰埃斯波 。从1996年开始,诺基亚手机连续15年占据手机市场份额第一位置&…

【测试】——自动化测试入门(Selenium环境搭建)

📖 前言:本文介绍了自动化测试的基础知识,重点讲解了Selenium环境的搭建。内容包括自动化测试的定义、自动化测试金字塔模型、Selenium的特点和工作原理,以及如何在Java环境中配置和使用Selenium进行UI自动化测试。 目录 &#x1…

性能测试经典案例解析——政务查询系统

各位好,我是 道普云 一站式云测试SaaS平台。一个在软件测试道路上不断折腾十余年的萌新。 欢迎关注我的主页 道普云 文章内容具有一定门槛,建议先赞再收藏慢慢学习,有不懂的问题欢迎私聊我。 希望这篇文章对想提高软件测试水平的你有所帮…

go 语言常见问题(4)

31. go语言编程的好处是什么 编译和运行都很快。在语言层级支持并行操作。有垃圾处理器。内置字符串和 maps。函数是 go 语言的最基本编程单位。 32. 说说go语言的select机制 select 机制用来处理异步 IO 问题select 机制最大的一条限制就是每个 case 语句里必须是一个 IO 操…

【C语言】归并排序递归和非递归——动图演示

目录 一、归并排序思想1.1 基本思想1.2 大体思路 二、实现归并排序(递归)三、实现归并排序(非递归)3.1 实现思路:3.2 越界处理3.3 时间复杂度和空间复杂度 总结 一、归并排序思想 1.1 基本思想 归并排序(M…

redis为什么快

春内存访问,相比数据库访问磁盘要快单线程,避免上下文切换带来的cpu开销渐进式Rehash。减少阻塞网络模型多路复用,reactor模型 常用基本数据类型 5个基本数据类型2个高级数据结构(bitmaps、hyperlog) redis高级功能…

Gitea Action注册runner

我的是gitea也可以和github 兼容,只是没有github 那么靓而已 安装一个gitea仓库 docker run -d --name gitea \-p3000:3000 -p2222:22 \-v /git/data:/data \ -v /etc/timezone:/etc/timezone:ro \-v /etc/localtime:/etc/localtime:ro \gitea/gitea:1.21.1setti…