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

分片见解

需要在商业Atlas部署中运行超过 M10 个运行MongoDB 8.0 或分片的分片集群

Atlas Sharding Insights 为分片的集群提供专门的监控和可观察性。 Sharding Insights仪表盘将分片元数据、硬件使用情况、数据分布和负载均衡器活动汇集在一个位置。使用 Sharding Insights 查看性能指标、追踪工作负载分布并识别分片的集群组件中的问题。

Atlas在Performance Advisor中提供以下建议,帮助您确定分片决策何时可以提高集群的性能:

  • 副本设立接近扩展限制

  • 大型或不断增长的未分集合

  • 集群接近存储或资源限制

使用分片键分析器分析这些推荐的候选分片键。

Sharding Insights 提供 Shards、Collections 和 Mongos Instances 视图,您可以在这些视图中监控集群组件的性能、工作负载分布和资源使用情况。

该页面显示集群摘要信息、活动分片建议以及显示硬件和分片特定指标随时间变化的图表。

您可以按从过去一小时到过去 90 天的时间范围过滤指标,或选择自定义日期和时间范围来分析特定时间段。

1
  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。

  2. 如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。

  3. 在侧边栏中,单击 Database 标题下的 Clusters。

会显示集群页面。

2
3

Sharding Insights 页面提供以下视图:

  • Shards:监控单个分片的指标。

  • Collections:监控单个集合的指标。

  • Mongos Instances:监控集群中 mongos 实例的指标。

使用时间范围选择器选择预设时间范围,或使用 Filter by Date and Time 选取器选择自定义日期和时间范围。

注意

默认下启用分片见解和分片建议。项目所有者和管理员可以在“项目设置”中的项目级别切换这些功能:

  • Sharding Insights:“请参阅分片状况和指标”

  • Sharding Recommendations:“改进分片配置的自定义建议”

Sharding Insights(分片见解)页面在顶部显示一个摘要部分,其中显示了关键集群概述信息:

  • 分片总数:集群中的分片总数。

  • 负载均衡器状态:负载均衡器的当前状态(已启用或已禁用)。

  • 负载均衡窗口 (UTC):为负载均衡器操作配置的时间窗口(如果设立)。

  • 配置服务器:配置服务器状态概述。

此摘要简要概述了集群的分片配置和当前状态。

集群摘要下方的 Recommendations 卡显示集群的活动分片建议,并带有指示建议数量的标记。展开卡片以查看每项建议的摘要。 Atlas在检测到以下情况时会建议动作:

  • 可能受益于分片的大型或不断增长的未分集合。

  • 集群接近存储或资源限制,增加分片可能会使其受益。

  • 副本集已接近扩展限制,转换为分片集群可能会使其受益。

要在Performance Advisor中查看建议的详细信息,请单击该建议。要评估候选分片键,请单击 Analyze Shard Keys 在新标签页中打开分片键分析器。

如果您的集群没有有效的推荐,该卡片会显示“目前没有推荐”消息。

Shards 视图显示所选指标的时间序列图表,然后是集群分片的表格。默认下,仪表盘显示 System CPU、System Memory、Connections 和 Opcounters 图表。

要显示不同的指标,请从指标选择器中选择它们。要按节点类型过滤图表和分片表,请从节点过滤中选择 All Nodes、Primaries 或 Secondaries。

Sharding Insights 提供以下指标(按类别分组):

每个分片聚合的硬件资源使用指标:

  • System CPU:分片上所有内核使用的 CPU 时间的百分比。

  • System Memory:分片上正在使用的RAM量。

  • System Network:分片上每秒输入和输出的网络字节总数。

  • Disk IOPS:每秒磁盘读写写入数。

  • Disk Latency:磁盘操作的平均写入延迟。

  • Disk Throughput:每秒从磁盘读取和写入磁盘的字节数。

  • Disk Space:分片上已用和可用的磁盘空间。

  • Data Size:分片上保存的用户数据的未压缩大小,跨数据库求和。如果禁用了项目的数据库统计信息集合,则此图表为空。

每个分片的查询和操作吞吐量指标:

  • Connections:与分片的活动客户端连接数。

  • Opcounters:每秒插入、查询、更新、删除、获取更多和命令操作的速率。

  • Queues:等待获取全局锁的操作数。

  • Replication Lag:复制期间主节点 (primary node in the replica set)和从节点之间的延迟(以毫秒为单位)。

  • Read Latency:分片上读取操作的平均执行时间。

  • Write Latency:分片上写入操作的平均执行时间。

  • Command Latency:分片上命令操作的平均执行时间。

每个分片的存储引擎缓存使用情况和效率:

  • Cache Fill Ratio:当前正在使用的已配置存储引擎缓存的百分比。接近 100% 的比率表示工作集大于缓存。

  • Dirty Fill Ratio:已配置存储引擎缓存保存尚未写入磁盘的已修改页面的百分比。高比率可能表示写入过载。

  • Cache Hit Ratio:由存储引擎缓存提供服务而不从磁盘读取页面的页面请求的百分比。

分片的集合的每个分片的数据大小、文档计数和数据块分布:

  • Owned Data Size:每个分片拥有的数据大小,跨分片的集合求和。

  • Orphaned Data Size:每个分片上孤立数据的大小,跨分片的集合求和。

  • Owned Document Count:每个分片拥有的文档数量,跨分片的集合求和。

  • Orphaned Document Count:每个分片上的孤立文档数量,跨分片的集合求和。

  • Chunk Count:分片的集合中每个分片上的数据段数量。

  • Jumbo Chunk Count:每个分片上的巨型数据段数。负载均衡器无法迁移巨型数据段。

这些指标可帮助您识别分片之间的性能瓶颈、容量问题和数据分布不平衡。

图表下方的分片表列出了所选时间范围内每个分片的状态、数据大小、平均和最大 CPU 使用率、每秒读取次数和每秒写入次数。该表控制哪些分片显示在图表中。要选择表格显示的列,请单击 Edit Columns。

要打开分片的详细信息面板,请单击其行。该面板显示分片的活动警报和概述指标,包括分片的集合的数量、平均写入负载、平均操作执行时间、缓存活动和范围删除器活动。

选择时间范围以查看历史指标:

  • 预设范围:选择 1 小时、8 小时、12 小时、24 小时、3 天、7 天、30 天、60 天或 90 天。

  • 自定义范围:使用 Filter by Date and Time 选取器选择特定的开始和结束日期和时间。

要放大特定时间窗口,请在图表上拖动。要返回到所选时间范围,请单击 Reset zoom。

历史数据可帮助您识别趋势、追踪一段时间内的变化以及将问题与特定事件关联起来。

Atlas提供分片键分析器,该工具可帮助您分析并为集合选择最佳分片键。通过Performance Advisor顾问访问分片键优化顾问,根据集群的查询模式和工作负载特征评估候选分片键。

您还可以通过单击 Analyze Shard Keys,从 Sharding Insights(分片见解)页面上的 Recommendations 卡打开 Shard Key Advisor。

要使用 Shard Key Advisor,您必须具有任何数据访问角色,例如 Project Data Access Read Only 或 Project Sharding Manager角色。

该分析器与分片建议一起显示在Performance Advisor中,并提供以下内容的即时分析:

  • 关联基数:候选字段中值的唯一性。

  • 单调性:字段值随着时间的推移是增加还是减少。

  • 频率:值在字段中的分布。

您可以选择启用查询采样,以便更深入地了解读取和写入分布模式。

要使用 Sharding Insights,您的集群必须满足以下要求:

  • 集群配置:分片集群(不适用于副本集)。

  • MongoDB版本: MongoDB 8.0 或更高版本。

  • 集群层:M10集群层或更高。

  • 项目设置:默认启用 Sharding Insights。如果集群侧边栏中没有显示 Sharding Insights 页面,请确认项目设置中已启用该设置。

  • 环境:仅限商业Atlas部署。

该页面会保留您的视图设置,包括页面URL中的时间范围、选定的指标、节点过滤和选定的分片。这样,您就可以为特定视图添加书签或与团队股票URL。

如果您在不满足先决条件的集群上访问权限Sharding Insights, Atlas会显示一条横幅,解释为什么该功能不可用,而不是“Sharding Insights”页面。

在此发布中,Sharding Insights 有以下限制:

Sharding Insights 不支持:

  • 副本设立部署(仅限分片的片集群)。

  • 运行8.0 之前的MongoDB版本的集群。

  • M10 以下层级上的集群。

  • 使用Atlas Data Regionalization 的集群。

  • Cloud Manager或Ops Manager部署。

  • 政府云环境。

此发布不支持:

  • 对 Sharding Insights 数据的Atlas Administration API访问权限。

  • Terraform提供商支持Sharding Insights 配置。

  • 针对 Sharding Insights指标的MongoDB MCP Server 集成。

这些功能可能会在未来的版本中添加。

在根据建议采取行动或进行分片更改之前,查看以下重要注意事项:

  • 永久更改:将副本集转换为分片集群是一项永久性的架构决策,无法逆转。

  • 所需规划:在对集合分片之前,请查看分片文档并规划分片键策略。

  • 分片键选择:选择支持您的查询模式并提供良好数据分布的分片键。请参阅选择分片键以评估潜在的分片键。

  • 生产前测试:在将应用程序应用于生产之前,使用所选分片键在分片集群上测试应用程序。从副本集迁移到分片集群可能会暴露功能和性能方面的差异。验证您的应用程序是否可以适当处理这些差异。

分片集群具有与副本集不同的写入操作语义:

  • 多文档操作:仅将 updateMany() 和 deleteMany() 用于分片的集合上的幂等写入。如果在执行过程中出现网络错误或故障转移,这些操作可能会对某些文档多次执行。

  • 可重试写入: MongoDB为单文档操作提供可重试写入以处理暂时性故障,但多文档操作需要仔细设计。

  • 写关注:查看应用程序的写关注(write concern)设置,确保它们符合分片的环境中的持久性要求。

在对集群分片之前,请查看分片操作限制。

  • PrivateLink 影响:如果您的集群使用 PrivateLink,从副本集转换为分片集群将完全区块与分片的连接。您的应用程序将出现停机,直到重新启动并重新连接到 mongos 路由器。

  • 连接更新:当您从副本集转换为分片集群时,您的应用程序必须重新启动才能重新连接到 mongos 路由器。如果您的应用程序使用 SRV连接字符串,则无需更改连接字符串,但仍需重新启动应用程序。向现有分片集群添加分片不需要重新启动应用程序。

在分片之间移动集合时:

  • 一次只能移动一个:一次只能移动一个集合。

  • 无写入阻塞:集合移动使用重新分片,允许在移动期间继续执行写入操作。

  • 目标容量:目标分片必须具有足够的存储和资源容量。

  • 操作时间:移动大型集合可能需要大量时间。

要学习;了解有关分片概念、建议和集群管理的更多信息,请参阅: