当我达到 Atlas 存储限制时会发生什么?
达到 Atlas 存储限制的结果取决于您所使用的 Atlas 集群。
对于免费集群(以前称为
M0)和 Flex 集群,最大存储是硬性限制,不能超过。您可以通过升级到专用集群(M10+) 来添加额外的存储。有关 Atlas 如何计算 Flex 集群存储限制的详细信息,请参阅常见问题解答的此部分。
如果您尝试写入 Flex 集群,而此集群没有空间用于所需的写操作,则 Atlas 将显示类似以下内容的错误消息:
WriteResult({ "writeError": { "code": 8000, "errmsg": "you are over your space quota, using 513 MB of 512 MB" } })
提示
要了解 Flex 集群和专用集群之间的区别,请参阅 Atlas Flex 限制。
提示
您可以配置警报,一旦分配的存储达到指定阈值,就会触发警报。Atlas 使用 dbStats 命令返回的指标计算所分配的存储。
Atlas 默认下每 20 分钟检索一次数据库指标,但会在必要时调整频率以减少对数据库性能的影响。
要了解有关存储警报的更多信息,请参阅 DB 存储警报条件。
Atlas 如何计算 Flex 集群的存储限制?
Atlas根据数据使用量而不是非 Flex 集群使用的 storageSize 指标(包括压缩)来计算存储限制。 Atlas通过对集群的 dataSize 和 indexSize 求和来确定数据使用量。 您可以发出 db.stats() 方法来查看这些字段的值。
如果不在 AWS 上的 MongoDB Atlas 使用预配 IOPS,那么我应该期待什么样的 IOPS?
Atlas提供了您可以预期的 16K IOPS 的估计值,计算为每预配GB3 IOPS 或集群节点的最大 IOPS容量中的较小者。
我是否可以在不更改存储容量的情况下更改集群的 IOPS 速率?
是的,对于托管在 AWS 或 Google Cloud 上的 Gen2 专用集群,您可以在不更改存储容量的情况下更改集群的 IOPS 速率。与 Gen1 集群相比,Gen2 专用集群性能更高,并支持扩展标准 IOPS,具有以下优势:
优化的性价比。
较新的硬件可实现长期增长并避免旧硬件的容量限制。
通过提高最大标准 IOPS 速率,独立扩展集群的标准 IOPS 和存储容量:
80kAWS 的 IOPS160kGoogle Cloud 的 IOPS
在 AWS 或 Google Cloud 上配置 M30+层级集群时,您可以选择 Gen2。要学习;了解详情,请参阅:
将集群切换到 Gen2 时会出现什么情况?
在各代之间切换集群的行为与任何其他集群层更改相同。更改代的方式与更改集群层的方式相同。要学习;了解更多信息,请参阅更改集群的代。
将集群切换到 Gen2 时,IOPS 会发生什么变化?
当您将集群从 Gen1 切换到 Gen2 时, Atlas会保持现有的 IOPS 速率。
对于 AWS 上托管的 Gen2 集群, Atlas还会保留现有的 IOPS 类型:
如果您的 Gen1集群使用 Provision IOPS,则 Gen2集群也会使用 High Performance IOPS。
如果您的 Gen1集群不使用 Provision IOPS,则 Gen2集群将使用 Standard IOPS。
我们不建议同时更改集群的代和 IOPS 类型。相反,请更改一项功能并确认集群按预期运行,然后再更改其他功能。要学习;了解如何在 Gen2 上配置标准 IOPS,请参阅 Gen2 集群的扩展标准 IOPS。
如果我将集群切换回 Gen1,我的 IOPS 会怎样?
对于 AWS 上托管的集群,当您将集群切换回 Gen1 时, Atlas会保留现有的 IOPS 类型。标准 IOPS 保持标准 IOPS,高性能 IOPS 保持高性能 IOPS。 Atlas还会根据 IOPS 检查 Gen2 配置。
Atlas还会根据 Gen1 配置限制检查您的 Gen2 配置。如果迁移到 Gen1 会违反 Gen1 限制, Atlas会自动降低 IOPS 以满足 Gen1 限制。示例,AWS 上托管的 Gen1 集群支持的最大 IOPS 为 16,000 IOPS,因此Atlas会自动降低 16,000 IOPS 的 Gen2集群。如果 Gen2集群使用超过 16,000 IOPS,当您切换到 Gen1 时, Atlas自动将该集群降低至 16,000 IOPS。如果迁移到 Gen1 会导致 IOPS 减少, Atlas会显示警告,并要求您在继续之前确认可用 IOPS 足以满足工作负载。
AWS 托管的 Gen2 集群上的标准 IOPS 和高性能 IOPS 有什么区别?
标准 IOPS 使用 AWS 通用固态硬盘卷,而不是高性能 IOPS 使用的 AWS 预配 IOPS 固态硬盘卷,因此它们不会提供相同的延迟或一致性特征。如果您的工作负载对写入延迟敏感或依赖于一致的IOPS 速率,请先在非生产环境中测试更改,然后再将其应用生产。
Provisioned IOPS on Gen1 和 High Performance IOPS on Gen2 指的是同一概念。要学习;了解IOPS 类型的不同之处,请参阅 IOPS 类型。
将集群切换到 Gen2 会改变我的成本吗?
是的,代数更改以及 IOPS 类型或速率的任何更改都会影响费用。要在应用每个更改之前估算其费用,请使用Atlas 用户界面中的集群构建器。
在 Gen2 上,您可以独立配置标准 IOPS 和存储容量, Atlas单独计费。您可以调整每一项以匹配您的工作负载并优化成本。要学习;了解Atlas如何对 Gen2 专用集群进行计费,请参阅 Gen2 专用集群。
我能否为集群配置超过集群层标准限制的存储?
对于符合特定标准的集群,答案为“是”。要了解哪些集群支持扩展存储以及如何为项目启用扩展存储,请参阅管理项目设置。
如何减少集群的存储使用量?
您可以在专用集群上使用 autoCompact 命令来执行背景压实,从而减少存储使用量。此命令会自动遍历可用文件,并不断尝试向操作系统发布不需要的磁盘空间。要了解有关启用 autoCompact 权限动作的更多信息,请参阅“内置角色和权限”部分中的内置角色。
autoCompact 命令仅在运行 MongoDB 8.0+ 的专用集群上受支持。
要在集群上运行 autoCompact,请执行以下步骤:
创建数据库用户并配置
autoCompact权限。(可选)如果您连接到分片集群,请检索分片集群中每个节点的连接字符串。您可以使用 Atlas Administration API 终结点来检索此信息。
连接到您想要运行
autoCompact的每个节点。在
admin数据库上运行autoCompact。