MongoDB延迟查询

news/2024/12/23 1:24:30/

在 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…