Docs 菜单
Docs 主页
/
MongoDB Atlas
/ / /

修复 Atlas Search 问题

在此页面上

  • 警报条件
  • 常见触发器
  • 解决眼前的问题
  • 实施长期解决方案
  • 监控您的进度

当 Atlas Search 进程使用的 CPU 和内存量达到指定阈值时,Atlas Search 会触发 Atlas Search 警报。如果搜索进程( mongot)内存不足,索引和查询将失败。您可以在项目警报设置模式中配置 Atlas Search 警报条件。您还可以通过集群监控查看 Atlas Search 指标。

警告

如果您对已具有 Atlas Search 索引的集合进行分片,当该集合开始出现在分片上时,您可能会遇到短暂的查询停机时间。此外,如果您为包含 Atlas Search 索引的已分片集合添加分片,针对该集合的搜索查询将失败,直到添加的分片完成初始同步过程为止。要了解更多信息,请参阅初始同步进程。

您可以在项目级警报设置页面中配置以下警报条件,以触发警报。

Atlas Search: Index Replication Lag如果 Atlas Search 在复制 的 oplog mongod更改时延迟的大致毫秒数高于或低于阈值,则会发生 。

Atlas Search: Index Size on Disk 如果磁盘上所有 Atlas Search 的总大小(以字节为单位)高于或低于阈值,则会发生此错误。

Atlas Search: Max Number of Lucene Docs 如果用于存储给定副本集或分片的 Atlas Search 索引的 Lucene 文档的上限数量高于阈值,则会发生此情况。

仅当复制因磁盘利用率高而被 Atlas Search mongot 进程中断时,Atlas Search: Mongot stopped replication 才会出现在专用搜索节点上。暂停复制阈值为 90%,恢复复制阈值为 85% 磁盘利用率。如果复制长时间暂停,mongot 进程将从 oplog 脱离。如果 mongot 进程脱离 oplog,Atlas 会重建索引。但是,如果您扩容搜索实例或删除 Atlas Search 索引,则可以防止 mongot 从 oplog 脱离。

Atlas Search: Number of Error Queries 如果 Atlas Search 无法返回响应的查询数量高于或低于阈值,则会发生此错误。

Atlas Search: Number of Index Fields 如果 Atlas Search 索引中存在的唯一字段总数高于或低于阈值,则会发生此错误。

Atlas Search: Number of Successful Queries 如果 Atlas Search 成功返回响应的查询数量高于或低于阈值,则会发生此错误。

Atlas Search: Total Number of Queries 提交到 Atlas Search 的查询数量高于或低于阈值时发生。

Atlas Search Opcounter: Delete 如果每秒删除的文档或字段(索引定义中指定的)总数高于或低于阈值,则发生此事件。

如果每秒对所有 Atlas Search 查询运行的 getmore 命令总数高于或低于阈值,则会出现 Atlas Search Opcounter: Getmore

Atlas Search Opcounter: Insert 如果 Atlas Search 每秒索引的文档或字段(索引定义中指定)的总数高于或低于阈值,则会发生此错误。

Atlas Search Opcounter: Update 如果 Atlas Search 每秒更新的文档或字段(索引定义中指定的)总数高于或低于阈值,则会发生此错误。

Insufficient disk space to support rebuilding search indexes 如果您的集群没有足够的可用磁盘空间来支持 Atlas Search 索引,则会出现此错误。

注意

当 Atlas 自动升级搜索索引以启用新功能时,可能会出现此警报。您的集群必须拥有足够的磁盘空间来存储旧版和新版索引。如果重新构建增加了 90% 或更多的磁盘空间使用量,Atlas 会根据您是否已启用自动扩展来增加集群存储。索引升级完成后,Atlas 会删除旧版索引,从而释放磁盘空间。

Search Memory: Resident 如果 Atlas Search 进程占用的常驻内存总字节数高于或低于阈值,则会发生此错误。

Search Memory: Shared 如果 Atlas Search 进程占用的共享内存总字节数高于或低于阈值,则会发生此错误。

Search Memory: Virtual 如果 Atlas Search 进程占用的虚拟内存总字节数高于或低于阈值,则会发生此错误。

Search Process: CPU (Kernel) % 如果为 Atlas Search 进程提供操作系统调用服务所花费的 CPU 时间百分比高于阈值,则会发生此错误。

Search Process: CPU (User) % 如果用于 Atlas Search 进程的 CPU 时间百分比高于阈值,则会发生此错误。

Search Process: Disk space used 如果 Atlas Search 进程使用的磁盘空间总字节数高于阈值,则会发生此错误。

如果搜索进程(mongot)内存不足,则会发生 Search Process: Ran out of memory。如果搜索进程内存不足,索引和查询将失败。

注意

默认情况下,Search Process: Ran out of memory 警报会自动运行。您可以配置警报设置,以禁用此通知。

当您尝试构建大型或复杂的搜索索引时,通常会出现 Atlas Search 警报。 在解决内存问题之前,这些索引将保持 Initial Sync阶段。

如果搜索进程 ( mongot ) 耗尽内存或磁盘空间,您可以升级集群来解决眼前的问题。 您可以选择具有更多内存、存储空间和 IOPS的集群层级。

要防止 Atlas Search 在将来发出警报,请仔细查看 Atlas Search 的提高 Atlas Search 性能

为了优化索引,我们建议部署专用搜索节点,这样就可以独立扩展 Atlas 集群和 $search 工作负载。专用搜索节点仅运行 mongot 进程,因此可改善 mongot 进程的可用性、性能和工作负载均衡。

查看可用的 Atlas Search 图表,以监控 Atlas Search 指标。

监控 Atlas Search 指标以评估和优化 Atlas Search 索引。

要了解更多信息,请参阅查看集群指标

后退

监控 Atlas Search