对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

监控 mongot 部署

mongot 是一个基于 Lucene、由 Java虚拟机(JVM) 托管的内存映射搜索引擎。它的运行特性与 mongod 不同:

  • 对存储延迟敏感。随机读取磁盘延迟直接影响查询和索引性能。存储类是部署中影响最大的决策之一。

  • 内存映射索引访问。文件系统缓存压力与查询延迟时间呈非线性关系。小内存短缺会导致延迟时间大幅下降。

  • 复制驱动。 mongotmongod 变更流的下游消费者。复制延迟、oplog 读取和连接状况都会影响索引新鲜度。

  • 多个工作负载阶段。初始同步、合并、稳定状态复制和查询均会对不同资源产生压力。在一个阶段中健康的信号可能表明在另一个阶段中存在问题。

category
它告诉您什么

健康

mongot 进程是否已启动、完成启动并准备接受工作。

复制

mongot 进程是否与 mongod 变更流同步。如果不同步,此数据将告诉您其落后的程度。

索引

mongot 进程是否正在建立和维护索引、合并是否正在进行以及初始同步是否正在进行。

查询

$search$searchMeta$vectorSearch 之间的延迟、吞吐量和错误率。

执行程序池

线程池利用率和队列深度。这里的饱和预测了查询延迟的降级。

JVM

与 Java 虚拟机(JVM)上的堆、垃圾回收和线程相关的指标。

记录

与 CPU、内存、硬盘 I/O、网络相关的指标(在进程或容器级别)。

存储

与 IOPS、页面错误率和空间有关的指标。

内嵌

启用 自动化嵌入 时,对 Voyage AI 终结点的吞吐量和错误率。

这些是要监控的关键信号。如果您只能监控少数信号,请从这些信号开始:

  • mongot 进程是否启动。正在重启动的 mongot 无法提供流量服务。崩溃循环表明 mongot 可用性存在问题。

  • 无论健康是否已达到 SERVING 状态。已启动但从未完成初始化的 mongot 无法响应查询。

  • 50百分位数 (p50) 和 99百分位数 (p99) 对 $search$vectorSearch. 的查询延迟。请特别关注 p99,因为 mongot 部署在存储或内存压力下会呈现非线性降级。p99 会在 p50 之前出现问题。

  • 索引管理请求的延迟,例如createSearchIndexgetSearchIndexes$listSearchIndexes聚合阶段。这些请求的峰值可能表示mongot忙碌或无法从mongod访问。

  • 自 mongod 应用上次更改事件以来的时间。此信号直接暴露为 mongot_index_stats_indexing_replicationLagMs(每索引,毫秒)。从不到一秒到几秒的小型稳态滞后是正常的。但是,滞后增加表明 mongot 无法跟上。持续滞后最终会脱离 oplog 并强制重新同步。重新同步比滞后本身更糟糕,因为它需要完全重建索引。完全索引重建计算成本高且耗时。

  • mongot_index_stats_* 每个搜索索引都会发出指标,并且只有在至少存在一个索引时才会出现。在没有索引的全新部署中,复制延迟系列不存在,而不是零。这很正常。

  • 活动索引操作及其状态 (PENDINGBUILDINGREADYFAILED)。构建受阻表明资源耗尽或数据问题。

  • 合并吞吐量。合并是背景工作。如果合并落后,查询延迟会增加。

查询执行器和索引执行器的队列深度。持续的非零队列深度表示饱和,并且查询正在等待工作线程。这是一个非常早的警告,延迟将会增加。

  • 垃圾回收后的堆利用率。垃圾回收后始终高于 85% 的堆可能会导致 OutOfMemoryError 错误。

  • 垃圾回收暂停时间。长时间的 GC 暂停会直接导致查询延迟峰值。

  • 持续的磁盘 IOPS 超过设备的安全运行点表明存储是瓶颈。存储类咨询阈值为 1,000 持续 IOPS,作为标志。有关详情,请参阅mongot 的存储类建议。

  • 缺页率。持续搜索缺页高于 1,000/秒表明操作系统反复从磁盘中拉取索引页面,而不是从缓存中提供这些页面。在 IOPS 升高的情况下,这是关键路径上内存压力的典型信号。

mongot dataPath 卷上的可用空间少于 20% 会导致可用性问题。合并可能需要超出实时索引占用空间的磁盘空间。如果卷的大小不合适,可能会导致静默失败。

处于稳定状态的健康 mongot 部署具有以下信号:

  • 进程已启动,健康状态为 SERVING

  • 复制延迟始终小于一秒。

  • 查询 p99 延迟在几天内保持稳定,没有上升。

  • 执行程序池队列深度始终接近于零。

  • JVM 垃圾回收后堆大小远低于配置的最大值。

  • 索引操作在预期时间内完成,并在 READY 中完成。

  • mongot 日志中没有错误,除已知的良性消息外。

如果所有这些都是真的,则认为部署是健康的。如果存在任何偏移,请参阅相关页面以获取更深入的指标进行调查。

Atlas 用户具有:

  • Atlas Search 指标用户界面。

  • MongoDB 对精选阈值集合进行托管报警。

  • Atlas 支持对 mongot FTDC 和日志的直接访问。

自管理用户具有:

  • 您配置 mongot 导出的指标和日志。

  • 您连接的警报平台。

  • 负责 FTDC 捕获和转发到 MongoDB 支持,以获取帮助。

自管理用户必须在投入生产之前建立监控。