Docs 菜单

Docs 主页启动和管理 MongoDBMongoDB Atlas

修复 Atlas Search 问题

在此页面上

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

当 Atlas Search 进程使用的 CPU 和内存量达到指定阈值时,Atlas Triggers 会触发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: 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 自动升级搜索索引以启用新功能时,可能会出现此警报。数据库部署必须有足够的磁盘空间用于索引的先前版本和新版本。索引升级完成后,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