Docs 主页 → 启动和管理 MongoDB → MongoDB 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 索引。
要了解更多信息,请参阅查看集群指标