

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Amazon DocumentDB 无服务器
<a name="docdb-serverless"></a>

Amazon DocumentDB 无服务器是一种按需自动扩缩配置，可根据应用程序需求自动执行动态调整 Amazon DocumentDB 数据库容量的过程。您只需为集群使用的资源付费。因此，DocumentDB 无服务器可以帮助您保持在预算范围内，避免为不使用的计算机资源付费。

这种自动化对于具有高度可变且不可预测工作负载的环境（例如多租户数据库、分布式数据库、开发和测试系统）尤为重要。

**Topics**
+ [无服务器应用场景](#docdb-serverless-use-cases)
+ [Amazon DocumentDB 无服务器的优势](#docdb-serverless-advantages)
+ [无服务器的工作原理](docdb-serverless-how-it-works.md)
+ [无服务器要求和限制](docdb-serverless-limitations.md)
+ [创建使用无服务器的集群](docdb-serverless-create-cluster.md)
+ [迁移到无服务器](docdb-serverless-migrating.md)
+ [管理无服务器](docdb-serverless-managing.md)
+ [无服务器实例限制](docdb-serverless-instance-limits.md)
+ [无服务器扩缩配置](docdb-serverless-scaling-config.md)
+ [监控无服务器](docdb-serverless-monitoring.md)

## DocumentDB 无服务器使用案例
<a name="docdb-serverless-use-cases"></a>

Amazon DocumentDB 预置集群和 DocumentDB 无服务器均支持多种类型的数据库工作负载，从开发和测试环境到最严苛的业务关键型应用程序（需要高扩展性和高可用性）。但是 DocumentDB 无服务器为客户工作负载增加了另一个维度，即能够支持工作负载不可预测的网站和应用程序。

DocumentDB 无服务器对于以下使用案例特别有用：
+ **可变工作负载**：您运行的工作负载会突然出现无法预测的活动增加。例如，在开始下雨时显示活动涌现的流量网站。另一个例子是当您提供销售或特别促销活动时流量会增加的电子商务网站。借助 DocumentDB 无服务器，您的数据库可自动扩展容量以满足应用程序的峰值负载需求，然后在活动涌现结束时再缩减。借助 DocumentDB 无服务器，您不再需要为峰值或平均容量进行预置。您可以指定容量上限来应对最糟糕情况，除非确实需要该容量，否则不使用该容量。
  + DocumentDB 无服务器中的扩缩粒度帮助您使容量与数据库的需求紧密匹配。对于预置的集群，扩展需要添加一个全新的实例。当仅需少量额外容量时，DocumentDB 无服务器可以增加半个 DCU。它可以DCUs 根据处理工作负载增加所需的额外容量增加 0.5、1、1.5、2 或额外的一半。当工作负载减少并且不再需要该容量DCUs 时，它可以移除 0.5、1、1.5、2 或额外的一半。
+ **多租户应用程序**：借助 DocumentDB 无服务器，您无需为实例集中的每个应用程序单独管理数据库容量。DocumentDB 无服务器为您管理单个数据库容量。
  + 您可为每个租户创建一个集群。这样，您就可以视情况使用克隆和快照恢复等功能为每个租户增强高可用性和灾难恢复。
  + 根据一天中的时间、一年中的时间、促销活动等，每个租户可能有特定的忙碌和空闲时段。每个集群都有宽容量范围。这样，活动量较少的集群将产生更低的实例费用。任何集群都可以快速扩展以应对活动较多的时期。
+ **新应用程序**：您正在部署新应用程序，但不确定所需的实例大小。通过使用 DocumentDB 无服务器，您可以设置具有一个或多个实例的集群，并让数据库根据应用程序的容量需求自动扩展。
+ **混合用途应用程序**：假设您有一个联机事务处理（OLTP）应用程序，但是您会周期性地经历查询流量高峰。通过在集群中指定 DocumentDB 无服务器实例的提升层，您可以将集群配置为让读取器实例可以独立于写入器实例进行扩展以处理额外负载。当使用高峰消退时，读取器实例会缩减以匹配写入器实例的容量。
+ **容量规划**：假设您通常通过修改集群中所有实例的实例类来调整数据库容量，或者验证工作负载的最佳数据库容量。借助 DocumentDB 无服务器，您可以避免产生此管理开销。您可以通过运行工作负载并检查实例实际扩展的程度来确定适当的最小和最大容量。
  + 您可以将现有实例从预置修改为 DocumentDB 无服务器或者从 DocumentDB 无服务器修改为预置。在此类情况下，您无需创建新集群或新实例。
+ **开发和测试**：除了运行要求最严苛的应用程序外，您还可以将 DocumentDB 无服务器用于开发和测试环境。借助 DocumentDB 无服务器，您可以创建最低容量较低的实例，而不是使用可突增的 db.t\$1 实例类。您可以将最大容量设置得足够高，以便这些实例仍然可以运行大量工作负载，而不会出现内存不足的情况。当数据库未在使用时，所有实例都会缩减以避免产生不必要的费用。

### 使用 Amazon DocumentDB 无服务器处理现有的预置工作负载
<a name="docdb-serverles-provisioned-workloads"></a>

假设您已在预置集群上运行 DocumentDB 应用程序。您可以将一个或多个 DocumentDB 无服务器实例作为读取器实例添加到现有集群，检查应用程序将如何与 DocumentDB 无服务器配合使用。您可以查看读取器实例扩展和缩减的频率。您可以使用 DocumentDB 故障转移机制将 DocumentDB 无服务器实例提升为写入器，并检查它如何处理工作负载。 read/write 这样，您可以在最短的停机时间内进行切换，而且无需更改客户端应用程序使用的端点。有关将现有集群转换为 DocumentDB 无服务器的过程的详细信息，请参阅 [迁移到 Amazon DocumentDB 无服务器](docdb-serverless-migrating.md)。

## Amazon DocumentDB 无服务器的优势
<a name="docdb-serverless-advantages"></a>

DocumentDB 无服务器适用于可变或“高峰”工作负载。对于此类不可预测的工作负载，您可能难以规划何时更改数据库容量。使用熟悉的机制（例如添加实例或更改实例类），您可能也难以足够快地进行容量更改。DocumentDB 无服务器提供了以下优势来帮助处理此类使用案例：
+ **比预置更简单的容量管理**：DocumentDB 无服务器减少了规划实例大小和随着工作负载变化调整实例大小的工作量。此外，还可以减少为集群中的所有实例维持一致容量的工作量。
+ **在活动较多的时期更快、更轻松地扩展**：DocumentDB 无服务器可根据需要扩展计算和内存容量，而无需中断客户端事务或总体工作负载。借助 DocumentDB 无服务器，能够使用读取器实例，除了垂直扩缩外，还可以帮助您利用水平扩缩。能够使用 DocumentDB 全局集群意味着您可以将您的 DocumentDB 无服务器读取工作负载分散到多个集群。 AWS 区域此功能比预置集群的扩缩机制更便利。
+ **在活动量较少的期间经济高效**：DocumentDB 无服务器帮助您避免超额配置实例。当实例扩展时，DocumentDB 无服务器以细粒度增量添加资源。您只需为所使用的数据库资源付费。DocumentDB 无服务器资源使用情况按秒计量。这样，当实例缩减时，会立即注册减少的资源使用量。
+ **与预置同等的功能**：您可以在 DocumentDB 无服务器中使用所有 DocumentDB 功能。例如，使用 DocumentDB 无服务器，您可以使用读取器实例、 AWS Identity and Access Management (IAM) 数据库身份验证和 Performance Insights。

  特别是，借助 DocumentDB 无服务器，您可以利用预置集群的以下功能：
  + **读取器实例**：DocumentDB 无服务器可以利用读取器实例进行横向扩展。当集群包含一个或多个读取器实例时，如果写入器实例出现问题，集群可以立即进行失效转移。
  + **多可用区集群** — 您可以将集群的 DocumentDB 无服务器实例分发到多个可用区 ()。AZs设置多可用区集群有助于确保业务连续性，甚至在极少数情况下会出现影响整个可用区的问题。
  + **全局群集** — 您可以将 DocumentDB 无服务器与 DocumentDB 全局群集结合使用，在其他集群中创建其他 AWS 区域 群集的只读副本，以用于灾难恢复。

# Amazon DocumentDB 无服务器的工作原理
<a name="docdb-serverless-how-it-works"></a>

**Topics**
+ [概述](#docdb-serverlerss-overviewn)
+ [Amazon DocumentDB 集群的配置](#docdb-serverlerss-configuration)
+ [Amazon DocumentDB 无服务器扩缩容量](#docdb-serverless-scaling-capacity)
+ [Amazon DocumentDB 无服务器扩缩](#docdb-serverless-scaling)
+ [空闲状态 (0.5 DCUs)](#docdb-serverlerss-idle-state)

## 概述
<a name="docdb-serverlerss-overviewn"></a>

Amazon DocumentDB 无服务器适用于要求严苛、变化很大的工作负载。例如，您的数据库使用量在短时间内可能很大，紧接着就是长时间的少量活动或完全没有活动。其中一些例子是定期举办促销活动的零售、游戏或体育网站，以及根据需要生成报告的数据库。其他一些例子包括开发和测试环境，以及使用量可能会迅速增加的新应用程序。对于类似这些情况和许多其他情况，使用预置模型并不总是能提前正确地配置容量。如果您过度预置并且保留不使用的容量，也可能导致更高的成本。

相比之下，DocumentDB 预置集群适合稳定的工作负载。对于已配置的集群，您可以选择具有预定义内存量、CPU 功耗、 I/O 带宽等的实例类别。如果您的工作负载发生变化，可以手动修改写入器和读取器的实例类。如果您可以在预期的消费模式之前调整容量，并且在更改集群中写入器和读取器的实例类时，出现短暂的中断是可以接受的，则预置模式很适合。

DocumentDB 无服务器专为支持即时可扩展的无服务器集群而从头开始构建。DocumentDB 无服务器的设计旨在提供与预置的写入器和读取器相同程度的安全性和隔离性。这些方面在多租户无服务器云环境中至关重要。动态扩缩机制的开销非常小，因此它可以快速响应数据库工作负载的变化。它还足够强大，可以满足处理需求的急剧增长。

通过使用 DocumentDB 无服务器，您可以创建 DocumentDB 集群，而无需将每个写入器和读取器限制在特定的数据库容量。您指定最小和最大容量范围。DocumentDB 会在该容量范围内扩缩集群中的每个 DocumentDB 无服务器写入器或读取器。通过使用每个写入器或读取器都可以动态扩缩的多可用区集群，您可以获得动态扩缩和高可用性。

DocumentDB 无服务器根据您的最小和最大容量规格自动扩缩数据库资源。扩缩速度很快，因为大多数扩缩事件操作将写入器或读取器保持在同一主机上。在极少数情况下，DocumentDB 无服务器写入器或读取器从一个主机移动到另一个主机，DocumentDB 无服务器自动管理连接。您无需更改数据库客户端应用程序代码或数据库连接字符串。

与预置集群一样，使用 DocumentDB 无服务器时，存储容量和计算容量是分开的。当我们提到 DocumentDB 无服务器容量和扩缩时，增加或减少的总是计算容量。因此，即使 CPU 和内存容量缩减至低水平，您的集群仍会包含许多 TB 的数据。

您可以指定数据库容量，而不是调配和管理数据库服务器。每个 DocumentDB 无服务器写入器或读取器的实际容量会随着时间的推移而发生变化，具体取决于您的工作负载。有关该机制的详细信息，请参阅 [Amazon DocumentDB 无服务器扩缩](#docdb-serverless-scaling)。

## Amazon DocumentDB 集群的配置
<a name="docdb-serverlerss-configuration"></a>

对于每个 Amazon DocumentDB 集群，您可以选择 DocumentDB 无服务器容量、预置容量或两者的任意组合。

您可以设置一个同时包含 DocumentDB 无服务器和预置容量的集群，称为混合配置集群。例如，假设您需要的 read/write 容量超过了 DocumentDB 无服务器写入器的可用容量。在这种情况下，您可以使用非常大的预置写入器来设置集群。然后，您仍然可以对读取器使用 DocumentDB 无服务器。或者假设集群的写入工作负载会变化，但读取工作负载保持稳定。在这种情况下，您可以使用 DocumentDB 无服务器写入器和一个或多个预置读取器设置集群。

您还可以设置由 DocumentDB 无服务器管理所有容量的集群。为此，您可以创建新的集群并从头开始使用 DocumentDB 无服务器。或者，您可以将现有集群中的所有预置容量替换为 DocumentDB 无服务器。对于使用 DocumentDB 无服务器创建新集群或者将现有集群切换到 DocumentDB 无服务器的过程，请参阅 [创建使用 Amazon DocumentDB 无服务器的集群](docdb-serverless-create-cluster.md) 和 [迁移到 Amazon DocumentDB 无服务器](docdb-serverless-migrating.md)。

如果您在集群中根本不使用 DocumentDB 无服务器，则集群中的所有写入器和读取器都为预置。这是大多数用户都熟悉的最常见的集群类型。预置容量是恒定的。费用相对更容易预测。但是，您必须提前预测所需的容量。在某些情况下，您的预测可能不准确，或者容量需求可能会发生变化。在这些情况下，您的集群可能会变得预置不足（比您期望的更慢）或预置过度（比您期望的更昂贵）。

## Amazon DocumentDB 无服务器扩缩容量
<a name="docdb-serverless-scaling-capacity"></a>

Amazon DocumentDB 无服务器的计量单位是 DocumentDB 容量单位（DCU）。DocumentDB 无服务器扩缩容量与您用于预置集群的实例类无关。

每个 DCU 是约 2GiB 的内存、相应的 CPU 和网络的组合。您可以使用此计量单位指定数据库容量范围。`ServerlessDatabaseCapacity` 和 `DCUUtilization` CloudWatch 指标帮助您确定数据库实际使用的容量以及该容量在指定范围内的位置。

在任何时候，每个 DocumentDB 无服务器写入器或读取器有一个容量。容量是一个浮点数，表示。 DCUs每当写入器或读取器扩缩时，容量会增加或减少。此值每秒测量一次。对于您打算使用 DocumentDB 无服务器的每个集群，定义一个容量范围：每个 DocumentDB 无服务器写入器或读取器可以在其间进行扩缩的最小容量和最大容量值。集群中的每个 DocumentDB 无服务器写入器或读取器的容量范围都相同。每个 DocumentDB 无服务器写入器或读取器都有自己的容量，该容量处于该范围内的某个位置。

仅有 DocumentDB 5.0.0（8.0 不支持）支持 DocumentDB 无服务器，容量范围为 0.5-256。 DCUs

您可以定义的最小 DocumentDB 无服务器容量为 0.5。 DCUs如果小于或等于最大支持容量值，您可以指定一个较高的数值。将最小容量设置为一个很小的数字，可以让负载较轻的集群消耗最少的计算资源。同时，他们随时准备立即接受连接，并在变得忙碌时进行扩展。

我们建议将最小值设置为让每个写入器或读取器可以在缓冲池中保留应用程序工作集的值。这样，在空闲期间，缓冲池的内容不会被丢弃。有关选择扩缩容量范围时的所有注意事项，请参阅 [为 DocumentDB 无服务器集群选择扩缩容量范围](docdb-serverless-scaling-config.md#docdb-serverless-scaling-capacity-choosing)。

根据您在多可用区部署中配置读取器的方式，读取器的容量可以与写入器的容量绑定，也可以独立设置。有关如何执行此操作的详细信息，请参阅 [查看和修改无服务器读取器的提升层](docdb-serverless-managing.md#docdb-serverless-promo-tier)。

监控 DocumentDB 无服务器涉及随时间推移测量集群中的写入器和读取器的容量值。如果数据库没有缩减至最小容量，则可以采取行动，例如调整最小值和优化数据库应用程序。如果数据库持续达到最大容量，则可以采用行动，例如增大最大容量。您还可以优化数据库应用程序，并将查询负载分散到更多读取器中。

DocumentDB 无服务器容量的费用按 DCU 小时数来计量。有关如何计算 DocumentDB 无服务器费用的信息，请参阅 [Amazon DocumentDB 定价](https://aws.amazon.com//documentdb/pricing)。假设集群中写入器和读取器的总数为 n。在这种情况下， DCUs 当你不运行任何数据库操作时，集群最少消耗大约 n x。Amazon DocumentDB 本身可能会运行监控或维护操作，从而产生少量负载。当数据库满负荷运行 DCUs 时，该集群的最大消耗量不超过 n x。

有关选择适当的最小和最大 DCU 值的更多详细信息，请参阅 [为 DocumentDB 无服务器集群选择扩缩容量范围](docdb-serverless-scaling-config.md#docdb-serverless-scaling-capacity-choosing)。您指定的最小和最大 DCU 值也会影响一些 Amazon DocumentDB 实例限制。有关容量范围与实例限制之间的相互影响的详细信息，请参阅 [Amazon DocumentDB 无服务器实例限制](docdb-serverless-instance-limits.md)。

## Amazon DocumentDB 无服务器扩缩
<a name="docdb-serverless-scaling"></a>

对于每个 DocumentDB 无服务器写入器或读取器，Amazon DocumentDB 会持续跟踪 CPU、内存和网络等资源的使用率。这些测量统称为负载。负载包括应用程序执行的数据库操作。还包括数据库服务器的后台处理和 Amazon DocumentDB 管理任务。当容量受到上述任何限制时，DocumentDB 无服务器就会扩展。当 DocumentDB 无服务器检测到可以通过扩展予以解决的性能问题时，也会扩展。您可以使用 [监控 Amazon DocumentDB 无服务器](docdb-serverless-monitoring.md) 中的过程监控资源利用率以及了解其如何影响 DocumentDB 无服务器扩缩。

集群中的写入器和读取器的负载可能会有所不同。写入器处理写入操作，并执行针对集群卷的所有数据修改。读取器可以处理只读请求。

扩缩是为数据库增大或减少 DocumentDB 无服务器容量的操作。使用 DocumentDB 无服务器时，每个写入器和读取器都有自己的当前容量值，以衡量单位。 DCUs当写入器或读取器的当前容量太低而无法处理负载时，DocumentDB 无服务器可将其扩展到更高的容量。当写入器或读取器的当前容量高于所需容量时，可以将写入器或读取器缩减至更低的容量。

DocumentDB 无服务器可以逐步增加容量。当您的工作负载需求开始达到写入器或读取器的当前数据库容量时，DocumentDB 无服务器会增加该写入器或读取 DCUs 器的数量。DocumentDB 无服务器会按所需的增量扩展容量，以便为所消耗的资源提供最佳性能。缩放以小至 0.5 DCUs 的增量进行。当前容量越大，扩缩增量就越大，因此可以更快地进行扩缩。

由于 DocumentDB 无服务器扩缩非常频繁、精细且无中断，因此不会在 AWS 管理控制台中导致离散事件。相反，您可以衡量 Amazon CloudWatch 指标（例如`serverlessDatabaseCapacity`和）`DCUUtilization`，并跟踪它们在一段时间内的最小值、最大值和平均值。要了解有关监控 DocumentDB 无服务器的更多信息，请参阅 [监控 Amazon DocumentDB 无服务器](docdb-serverless-monitoring.md)。

扩展或缩减可能是由以下原因引起的：
+ 内存利用率
+ CPU 使用率
+ 网络使用率
+ 存储使用率

您可以监控这些在 DocumentDB 无服务器实例 up/down 上扩容的原因。有关更多信息，请参阅 [监控 Amazon DocumentDB 无服务器](docdb-serverless-monitoring.md)。

您可以选择使读取器与关联写入器同时扩缩，也可以独立于写入器进行扩缩。您可以通过为该读取器指定提升层来完成扩缩。
+ 提升层 0 和 1 中的 DocumentDB 无服务器读取器与写入器同时扩缩。这种扩缩行为使得优先级层 0 和 1 中的读取器非常容易获得。这是因为它们的大小总是调整为适当的容量，以便在失效转移情况下接管来自写入器的工作负载。
+ 提升层 2-15 中的读取器可以独立于写入器进行扩缩。每个读取器都保持在您为集群指定的最小和最大 DCU 值范围内。当读取器独立于关联的写入器数据库进行扩缩时，它会变为空闲并缩减，同时写入器继续处理大量事务。如果在较低的提升层中没有其他读取器可用，它仍可作为失效转移目标。但是，如果它被提升为写入器，则可能需要扩展以处理写入器的全部工作负载。

有关查看和更改无服务器实例的提升层的详细信息，请参阅 [查看和修改无服务器读取器的提升层](docdb-serverless-managing.md#docdb-serverless-promo-tier)。

DocumentDB 无服务器扩缩可能在数据库连接打开、事务处理正在进行等情况下发生。DocumentDB 无服务器不会等到安静点才开始扩缩。扩缩不会中断任何正在进行的数据库运营。

如果您的工作负载需要的读取容量超过单个写入器和单个读取器可提供的读取容量，则可以向集群添加多个 DocumentDB 无服务器读取器。每个 DocumentDB 无服务器读取器可以在您为集群指定的最小和最大容量值范围内扩缩。您可以使用集群的读取器端点将只读会话定向到读取器并减少写入器上的负载。

DocumentDB 无服务器是否执行扩缩，以及扩缩在启动后的速度也取决于集群的最小和最大 DCU 设置。此外，它还取决于读取器是配置为随写入器一起扩缩还是独立于写入器进行扩缩。有关扩缩配置的详细信息，请参阅 [Amazon DocumentDB 无服务器扩缩配置](docdb-serverless-scaling-config.md)。

## 空闲状态 (0.5 DCUs)
<a name="docdb-serverlerss-idle-state"></a>

当 Amazon DocumentDB 无服务器写入器或读取器处于空闲状态时， DCUs 如果集群配置为 0.5，DocumentDB 无服务器实例支持缩减到 0.5 的 MinCapacity 空闲状态。

在空闲状态下，DocumentDB 无服务器实例虽然没有足够的 CPU 计算容量来支持大多数生产工作负载，但可以随时快速扩展以支持新的工作负载。在非空闲状态下，DocumentDB 无服务器实例通常至少需要 1.0-2.5。 DCUs因此，当 DocumentDB 无服务器实例从空闲状态扩展到非空闲状态时，它们将直接扩展到 1.0-2.5 DCUs （ MaxCapacity 如果值较低，则为的值）。

为了支持在空闲 DCUs 时缩小到 0.5，如果配置为小于或等于 1.0 DCUs，则会对实例限制设置上限。 MinCapacity 有关 MinCapacity 配置如何影响限制的更多信息，请参阅[Amazon DocumentDB 无服务器实例限制](docdb-serverless-instance-limits.md)。

# DocumentDB 无服务器的要求和限制
<a name="docdb-serverless-limitations"></a>

## 功能要求
<a name="w2aac41c15b3"></a>

### 区域可用性
<a name="w2aac41c15b3b3"></a>

Amazon DocumentDB 无服务器实例类型已在以下区域推出：

以下 AWS CLI 命令可用于验证特定区域提供的确切的 DocumentDB 无服务器实例选项：

```
aws docdb describe-orderable-db-instance-options \
        --region my_region \
        --db-instance-class db.serverless \
        --engine docdb
```

### 引擎版本可用性
<a name="w2aac41c15b3b5"></a>

只有亚马逊 DocumentDB 5.0.0 引擎版本支持 DocumentDB 无服务器。它不适用于引擎版本 3.6、4.0 或 8.0。

**注意**  
DocumentDB 无服务器仅在较新的补丁版本 5.0.0 上才受支持。请确保集群已更新至最新的引擎补丁版本。有关维护 Amazon DocumentDB 集群的更多信息，请参阅 [维护 Amazon DocumentDB](db-instance-maintain.md)

### 集群配置
<a name="w2aac41c15b3b7"></a>

在将任何 Amazon DocumentDB 无服务器实例添加到 Amazon DocumentDB 集群之前，必须先为集群设置 `ServerlessV2ScalingConfiguration` 参数。该参数定义集群中 DocumentDB 无服务器实例的容量范围。有关扩缩配置的更多信息，请参阅 [Amazon DocumentDB 无服务器扩缩配置](docdb-serverless-scaling-config.md)。

### 特定 Amazon DocumentDB 功能的最小扩缩容量范围设置
<a name="w2aac41c15b3b9"></a>

有一些 Amazon DocumentDB 功能适用于 DocumentDB 无服务器，但如果您的容量范围低于特定工作负载下的这些功能的内存需求所需的容量，则可能会导致问题。在这种情况下，您的数据库可能无法像往常那样运行，或者可能会遇到 out-of-memory错误。

以下功能需要配置更高的`MinCapacity` and/or `MaxCapacity`值才能实现最佳操作：
+ 性能详情
+ 全局群集（仅适用于主群集 AWS 区域）
+ 在数据量大的集群上创建无服务器实例

  这包括在集群恢复过程中创建无服务器实例。

有关设置适当容量范围的建议（如果您正在使用此功能），请参阅 [为 DocumentDB 无服务器集群选择扩缩容量范围](docdb-serverless-scaling-config.md#docdb-serverless-scaling-capacity-choosing)。有关数据库因容量范围配置错误而遇到 out-of-memory错误时的疑难解答信息，请参阅[避免 out-of-memory错误](docdb-serverless-scaling-config.md#docdb-serverless-scaling-mem-errors)。

# 创建使用 Amazon DocumentDB 无服务器的集群
<a name="docdb-serverless-create-cluster"></a>



## 创建 Amazon DocumentDB 无服务器集群
<a name="w2aac41c17b5"></a>

借助 Amazon DocumentDB 无服务器，您的集群可以与预置集群互换。您的集群可以有一些实例使用无服务器，有些实例为预置实例。

确认所需区域和引擎版本支持 DocumentDB 无服务器。请参阅[DocumentDB 无服务器的要求和限制](docdb-serverless-limitations.md)。

要创建可以在其中添加无服务器实例的 Amazon DocumentDB 集群，请按照 [创建 Amazon DocumentDB 集群](db-cluster-create.md) 中的相同过程进行操作。唯一区别在于还必须提供 `ServerlessV2ScalingConfiguration` 参数。

`ServerlessV2ScalingConfiguration` 参数指定 DocumentDB 无服务器实例的扩缩容量范围。由适用于集群中所有 DocumentDB 无服务器实例的最小和最大 DocumentDB 容量单位（DCU）值组成：
+ `MinCapacity` 值指定最小扩缩容量。
+ `MaxCapacity` 值指定最大扩缩容量。

有关扩展的更多信息，请参阅[Amazon DocumentDB 无服务器扩缩配置](docdb-serverless-scaling-config.md)。

------
#### [ Using the AWS 管理控制台 ]

以下 AWS 管理控制台 配置示例显示了如何创建 DocumentDB 无服务器集群。

1. 登录 [AWS 管理控制台](https://console.aws.amazon.com/docdb/home?region=us-east-1) 并打开 Amazon DocumentDB 控制台。

1. 在导航窗格中，选择**集群**。
**提示**  
如果您在屏幕左侧没有看到导航窗格，请在页面左上角选择菜单图标 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

   将显示**集群**表。

1. 选择**创建**。

   将显示**创建 Amazon DocumentDB 集群**页面。

1. 在“创建 Amazon DocumentDB 集群”页面上，在**集群类型**部分中选择**基于实例的集群**（这是默认选项）。

1. 在**集群配置**部分中：

   1. 在**集群标识符**中，输入唯一名称，例如 **myserverlesscluster**。请注意，无论如何输入，控制台都会将所有集群的名称更改为小写。

   1. 对于**引擎版本**，选择 **5.0.0**（这是默认选项）。

1. 在**集群存储配置**部分，选择 **Amazon DocumentDB 标准**（此为默认选项）。
**注意**  
此类别中的另一个选项是 **Amazon DocumentDB I/O 优化**。要了解有关任一选项的更多信息，请参阅 [Amazon DocumentDB 集群存储配置](db-cluster-storage-configs.md)

1. 在**实例配置**部分：

   1. 对于**数据库实例类**，选择**无服务器**。

   1. 对于**常规副本实例数**，选择 **3**（这是默认选项）。

   1. 在**容量范围**部分中，保留**最小**值 DCUs和**最大**值的默认值 DCUs。有关设置这些参数的信息，请参阅 [Amazon DocumentDB 无服务器实例限制](docdb-serverless-instance-limits.md)。  
![\[无服务器数据库集群的配置表单，其中包含实例类、副本实例和容量范围等字段。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/instance-config-serverless.png)

1. 在**连接**部分中，保留默认设置：**不连接到 EC2 计算资源**。

1. 在**身份验证**部分中，输入主要用户的用户名，然后选择**自行管理**。输入密码，然后确认密码。

   如果您改为**在中选择 “托管**” AWS Secrets Manager，[使用 Amazon DocumentDB 进行密码管理以及 AWS Secrets Manager](docdb-secrets-manager.md)请参阅，了解更多信息。

1. 使其他所有选项保持默认，并选择**创建集群**。

------
#### [ Using the AWS CLI ]

在以下示例中，*user input placeholder*使用您自己的信息或配置参数替换每个示例。

要使用创建与 DocumentDB 无服务器实例兼容的集群， AWS CLI请参阅。[使用创建集群 AWS CLI](db-cluster-create.md#db-cluster-create-cli)

在 `create-db-cluster` 命令中包含以下附加参数：

```
--serverless-v2-scaling-configuration 
     MinCapacity=minimum_capacity,MaxCapacity=maximum_capacity
```

示例：

```
aws docdb create-db-cluster \
      --db-cluster-identifier sample-cluster \
      --engine docdb \
      --engine-version 5.0.0 \
      --serverless-v2-scaling-configuration MinCapacity=0.5,MaxCapacity=16 \
      --master-username user-name \
      --master-user-password password
```

------

## 添加 Amazon DocumentDB 无服务器实例
<a name="docdb-serverless-adding-instance"></a>

要添加 DocumentDB 无服务器实例，请按照 [向集群添加 Amazon DocumentDB 实例](db-instance-add.md) 中的相同步骤操作，确保将 db.serverless 指定为实例类。

### 使用 AWS 管理控制台添加无服务器实例。
<a name="w2aac41c17b7b5"></a>

要使用控制台添加 DocumentDB 无服务器实例，请参阅 [向集群添加 Amazon DocumentDB 实例](db-instance-add.md)，并选择**使用 AWS 管理控制台** 选项卡。

### 使用添加无服务器实例 AWS CLI
<a name="w2aac41c17b7b7"></a>

要使用添加 DocumentDB 无服务器实例 AWS CLI，请参阅[向集群添加 Amazon DocumentDB 实例](db-instance-add.md)并选择**使用**选项卡。 AWS CLI

使用以下实例类 CLI 参数：

```
--db-instance-class db.serverless
```

示例：

```
aws docdb create-db-instance \
      --db-cluster-identifier sample-cluster \
      --db-instance-identifier sample-instance \
      --db-instance-class db.serverless \
      --engine docdb
```

# 迁移到 Amazon DocumentDB 无服务器
<a name="docdb-serverless-migrating"></a>

**Topics**
+ [将现有的 DocumentDB 集群迁移到无服务器](#w2aac41c19b5)
+ [从 MongoDB 迁移到 DocumentDB 无服务器](#w2aac41c19b7)

## 将现有的 DocumentDB 集群迁移到无服务器
<a name="w2aac41c19b5"></a>

### 升级集群的引擎版本
<a name="w2aac41c19b5b3"></a>

如果您的预置集群运行的是不支持 DocumentDB 无服务器的较低引擎版本，则需要先将集群升级到支持的引擎版本。有关更多信息，请参阅 [Amazon DocumentDB 主版本就地升级](docdb-mvu.md)。

### 将预置集群迁移到 DocumentDB 无服务器
<a name="docdb-serverless-migrate-cluster"></a>

要将预置集群切换为使用 DocumentDB 无服务器，请按照以下步骤操作：

1. 检查是否需要升级预置集群的引擎版本以与 DocumentDB 无服务器配合使用。请参阅[DocumentDB 无服务器的要求和限制](docdb-serverless-limitations.md)。
**注意**  
如果预置集群运行的是不适用于 DocumentDB 无服务器的引擎版本，则升级集群的引擎版本。请参阅[Amazon DocumentDB 主版本就地升级](docdb-mvu.md)。

1. 配置集群的扩缩配置。有关选择扩缩配置的详细信息，请参阅 [为 DocumentDB 无服务器集群选择扩缩容量范围](docdb-serverless-scaling-config.md#docdb-serverless-scaling-capacity-choosing)。要修改集群的扩缩配置，请参阅 [查看和修改集群的扩缩容量范围配置](docdb-serverless-managing.md#docdb-serverless-range-config)。

1. 配置任何其他集群属性以满足 [DocumentDB 无服务器的要求和限制](docdb-serverless-limitations.md) 中的 DocumentDB 无服务器要求和限制。

1. 将一个或多个 DocumentDB 无服务器实例添加到该集群。按照[添加 Amazon DocumentDB 无服务器实例](docdb-serverless-create-cluster.md#docdb-serverless-adding-instance)中的程序操作。
**注意**  
在某些情况下，您的集群中可能已经拥有一个或多个预置读取器实例。如果已经拥有，您可以选择将其中一个读取器转换为 DocumentDB 无服务器实例，而不是创建新的实例。为此，请按照[更改实例的类](db-instance-classes.md#db-instance-class-changing)中的过程操作

1. （可选）执行失效转移操作，以使 DocumentDB 无服务器实例成为集群写入器。请参阅[Amazon DocumentDB 失效转移](failover.md)。

1. （可选）将任何剩余的预置 Amazon DocumentDB 实例转换为 DocumentDB 无服务器实例（请参阅 [更改实例的类](db-instance-classes.md#db-instance-class-changing)），或者将其从集群中移除（请参阅 [删除 Amazon DocumentDB 实例](db-instance-delete.md)）。

------
#### [ Using the AWS 管理控制台 ]

以下 AWS 管理控制台 配置示例显示了使用运行 Amazon DocumentDB 5.0.0 的 Amazon DocumentDB 预配置集群的迁移过程，该集群不需要升级引擎版本即可开始使用 DocumentDB 无服务器。集群名为 `sample`，从名为 `sample`、`sample2` 和 `sample3` 的三个预置实例开始。在此示例中，将这三个实例替换为三个无服务器实例。

1. 登录 [AWS 管理控制台](https://console.aws.amazon.com/docdb/home?region=us-east-1) 并打开 Amazon DocumentDB 控制台。

1. 在导航窗格中，选择**集群**。
**提示**  
如果您在屏幕左侧没有看到导航窗格，请在页面左上角选择菜单图标 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

   将显示**集群**表。

1. 在**集群**表中，选中要向其添加无服务器实例的集群的复选框。

1. 选择 **Actions (操作)**，然后选择 **Add instance (添加实例)**。

1. 在**添加实例**对话框中，为要创建的每个新无服务器实例选择**数据库实例类**部分中的**无服务器**。

1. 对于**无服务器容量设置**，根据对话框中的容量描述设置扩缩配置。

1. （可选）要添加其他实例，请选择**添加实例**。继续添加实例，直至达到所需的新实例数量。

   在此示例中，创建了三个新无服务器实例。

1. 选择**创建**。

   创建实例需要几分钟时间。您可以使用控制台或 AWS CLI 查看实例的状态。有关更多信息，请参阅[监控 Amazon DocumentDB 集群的状态](https://docs.aws.amazon.com//documentdb/latest/developerguide/monitoring_docdb-cluster_status.html)。

1. 返回至**集群**表，选中所有三个原始预置实例的复选框。

1. 选择**操作**，然后选择**删除**。

在删除过程中，将自动执行失效转移，以将剩余的实例之一提升为写入器。数分钟后删除过程完成。现有集群现在包含三个 DocumentDB 无服务器实例（如**大小**列中所定义）。

------
#### [ Using the AWS CLI ]

以下 AWS CLI 配置示例显示了使用运行 Amazon DocumentDB 5.0.0 的 Amazon DocumentDB 预配置集群的迁移过程，该集群不需要升级引擎版本即可开始使用 DocumentDB 无服务器。集群名为 `sample`，从名为 `sample`、`sample2` 和 `sample3` 的三个预置实例开始。在此示例中，将这三个实例替换为三个无服务器实例。集群名为 `sample-cluster`，从名为 `sample-provisioned-instance-1` 和 `sample-provisioned-instance-2` 的两个预置实例（一个写入器实例和一个读取器实例）开始。

在以下示例中，*user input placeholder*使用您自己的信息或配置参数替换每个示例。

使用 `aws docdb describe-db-clusters` 操作确定集群的状态。以下代码将查找集群 `sample-cluster` 的状态并以表格形式输出结果：

```
aws docdb describe-db-clusters \
    --db-cluster-identifier sample-cluster \
    --query 'DBClusters[*].DBClusterMembers' \
    --output table
```

```
--------------------------------------------------------------------------------------------------------
|                                          DescribeDBClusters                                          |
+--------------------------------+---------------------------------+------------------+----------------+
|  DBClusterParameterGroupStatus |      DBInstanceIdentifier       | IsClusterWriter  | PromotionTier  |
+--------------------------------+---------------------------------+------------------+----------------+
|  in-sync                       |  sample-provisioned-instance-2  |  False           |  1             |
|  in-sync                       |  sample-provisioned-instance-1  |  True            |  1             |
+--------------------------------+---------------------------------+------------------+----------------+
```

添加集群的扩缩配置：

```
aws docdb modify-db-cluster \
    --db-cluster-identifier sample-cluster \
    --serverless-v2-scaling-configuration MinCapacity=0.5,MaxCapacity=16
```

添加无服务器实例。在此示例中，添加了名为 `sample-serverless-instance-1` 和 `sample-serverless-instance-2` 的新无服务器实例：

```
aws docdb create-db-instance \
    --db-cluster-identifier sample-cluster \
    --db-instance-identifier sample-serverless-instance-1 \
    --db-instance-class db.serverless \
    --engine docdb

aws docdb create-db-instance \
    --db-cluster-identifier sample-cluster \
    --db-instance-identifier sample-serverless-instance-2 \
    --db-instance-class db.serverless \
    --engine docdb
```

输入以下内容，等待无服务器实例可用后再继续：

```
aws docdb wait db-instance-available \
    --db-instance-identifier sample-serverless-instance-1

aws docdb wait db-instance-available \
    --db-instance-identifier sample-serverless-instance-2
```

执行失效转移以使新的 `sample-serverless-instance-1` 实例成为集群写入器。

```
aws docdb failover-db-cluster \
    --db-cluster-identifier sample-cluster \
    --target-db-instance-identifier sample-serverless-instance-1
```

故障转移需要几秒钟才能完成，之后 sample-serverless-instance -1 成为集群写入器。使用以下输入来验证这一点：

```
aws docdb describe-db-clusters \
    --db-cluster-identifier sample-cluster \
    --query 'DBClusters[*].DBClusterMembers' \
    --output table
```

```
--------------------------------------------------------------------------------------------------------
|                                          DescribeDBClusters                                          |
+--------------------------------+---------------------------------+------------------+----------------+
|  DBClusterParameterGroupStatus |      DBInstanceIdentifier       | IsClusterWriter  | PromotionTier  |
+--------------------------------+---------------------------------+------------------+----------------+
|  in-sync                       |  sample-provisioned-instance-2  |  False           |  1             |
|  in-sync                       |  sample-provisioned-instance-1  |  False           |  1             |
|  in-sync                       |  sample-serverless-instance-2   |  False           |  1             |
|  in-sync                       |  sample-serverless-instance-1   |  True            |  1             |
+--------------------------------+---------------------------------+------------------+----------------+
```

最后，删除原始的预置实例：

```
aws docdb delete-db-instance \
    --db-instance-identifier sample-provisioned-instance-1

aws docdb delete-db-instance \
    --db-instance-identifier sample-provisioned-instance-2
```

------

## 从 MongoDB 迁移到 DocumentDB 无服务器
<a name="w2aac41c19b7"></a>

您可以将 MongoDB 数据库迁移到 DocumentDB 无服务器，就像使用预置 Amazon DocumentDB 一样。有关更多信息，请参阅 [迁移到 Amazon DocumentDB](docdb-migration.md)。

# 管理 Amazon DocumentDB 无服务器
<a name="docdb-serverless-managing"></a>

## 查看和修改集群的扩缩容量范围配置
<a name="docdb-serverless-range-config"></a>

`ServerlessV2ScalingConfiguration` 参数指定 DocumentDB 无服务器实例的扩缩容量范围。由适用于集群中所有 DocumentDB 无服务器实例的最小和最大 DocumentDB 容量单位（DCU）值组成。
+ **`MinCapacity`**：集群中任何 DocumentDB 无服务器实例的最小扩缩容量。
+ **`MaxCapacity`**：集群中任何 DocumentDB 无服务器实例的最大扩缩容量。

**注意**  
以下扩缩配置修改需要重新启动实例以反映新的 `MinCapacity` 和 `MaxCapacity` 值：  
对 `MaxCapacity` 值的任何更改
将 `MinCapacity` 值从较高的值更改为 1.0 或更低值
将 `MinCapacity` 值从较低的值更改为大于 1.0 的值

有关扩缩配置以及如何选择适当的扩缩容量限制的更多信息，请参阅 [Amazon DocumentDB 无服务器扩缩配置](docdb-serverless-scaling-config.md)。

------
#### [ Using the AWS 管理控制台 ]

以下 AWS 管理控制台 配置示例显示了如何查看和编辑 DocumentDB 无服务器集群的扩展配置设置。

1. 登录 [AWS 管理控制台](https://console.aws.amazon.com/docdb/home?region=us-east-1) 并打开 Amazon DocumentDB 控制台。

1. 在导航窗格中，选择**集群**。
**提示**  
如果您在屏幕左侧没有看到导航窗格，请在页面左上角选择菜单图标 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

   将显示**集群**表。

1. 在**集群**表中，选中要修改扩缩容量的集群的复选框。

1. 选择 **Actions (操作)**，然后选择 **Modify (修改)**。

   将显示**修改集群**对话框。

1. 找到**无服务器容量设置**部分，根据对话框中的容量描述设置扩缩配置（**容量范围**）。

   有关扩缩和容量范围的更多信息，请参阅 [Amazon DocumentDB 无服务器扩缩配置](docdb-serverless-scaling-config.md)。

1. 选择**继续**。

1. 对于**修改计划**，选择**立即应用**。

1. 选择**修改集群**。

1. 修改完成后，应重启每个无服务器实例。要最大限度地减少写入器不可用情况，请执行以下操作序列：

   1. 重启每个无服务器读取器实例。

      1. 选择读取器实例，选择**操作**，然后选择**重启**。

      1. 等待实例状态恢复为**可用**。

   1. 对重启的无服务器实例执行失效转移。

      1. 选择集群，选择**操作**，然后选择**失效转移**。

      1. 等待失效转移操作完成。

   1. 重启剩余的无服务器实例。

      1. 选择剩余的实例，选择**操作**，然后选择**重启**。

      1. 等待实例状态恢复为**可用**。

------
#### [ Using the AWS CLI ]

以下 AWS CLI 配置示例显示了当前的扩展配置。

在以下示例中，*user input placeholder*使用您自己的信息或配置参数替换每个示例。

可以使用以下`describe-db-clusters` AWS CLI 命令查看集群的当前扩展配置：

```
aws docdb describe-db-clusters \
    --db-cluster-identifier sample-cluster \
    --query 'DBClusters[0].ServerlessV2ScalingConfiguration'
```

此命令的输出如下：

```
{
    "MinCapacity": 0.5,
    "MaxCapacity": 16.0
}
```

可以使用 `modify-db-cluster` 命令修改集群的扩缩配置：

```
aws docdb modify-db-cluster \
    --db-cluster-identifier sample-cluster \
    --serverless-v2-scaling-configuration MinCapacity=0.5,MaxCapacity=32
```

完成后，应重启每个无服务器实例。要最大限度地减少写入器不可用情况，可以执行以下操作序列：

```
aws docdb reboot-db-instance \
    --db-instance-identifier sample-serverless-instance-reader

aws docdb wait db-instance-available \
    --db-instance-identifier sample-serverless-instance-reader

aws docdb failover-db-cluster \
   --db-cluster-identifier sample-cluster \
   --target-db-instance-identifier sample-serverless-instance-reader

aws docdb reboot-db-instance \
    --db-instance-identifier sample-serverless-instance-writer

aws docdb wait db-instance-available \
    --db-instance-identifier sample-serverless-instance-writer

aws docdb failover-db-cluster \
   --db-cluster-identifier sample-cluster \
   --target-db-instance-identifier sample-serverless-instance-writer
```

------

## 查看和修改无服务器读取器的提升层
<a name="docdb-serverless-promo-tier"></a>

对于包含多个 DocumentDB 无服务器实例或混用预置实例和无服务器实例的集群，请注意每个无服务器实例的提升层设置。此设置控制的无服务器实例行为比预置实例更多。

对于预置实例，0-15 层的选择仅决定在失效转移操作期间 Amazon DocumentDB 选择将读取器实例提升为写入器的顺序。但是，对于无服务器实例，层编号还决定实例是扩展以匹配写入器实例的容量，还是根据自己的工作负载独立扩展。第 0 层或第 1 层的无服务器读取器实例的最小容量至少与写入器实例一样高。这样，读取器实例就可以准备好在发生失效转移的情况下接管写入器实例。如果写入器实例是预置实例，Amazon DocumentDB 会估算等效的 DocumentDB 无服务器容量。其使用该估计值作为无服务器读取器实例的最小容量。

第 2-15 层中的 DocumentDB 无服务器读取器实例对其最小容量没有这样的限制。当其处于空闲状态时，可以缩减到集群的容量范围中指定的最小 DocumentDB 容量单位（DCU）值。

------
#### [ Using the AWS 管理控制台 ]

以下 AWS 管理控制台 配置示例显示了如何查看和修改 DocumentDB 无服务器实例读取器的促销等级设置。

1. 登录 [AWS 管理控制台](https://console.aws.amazon.com/docdb/home?region=us-east-1)并 打开 Amazon DocumentDB 控制台。

   每个实例的提升层都显示在 AWS 管理控制台的**提升层**列中。

1. 在导航窗格中，选择**集群**。
**提示**  
如果您在屏幕左侧没有看到导航窗格，请在页面左上角选择菜单图标 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

   将显示**集群**表。

1. 在**集群**表中，选中要修改提升层的实例的复选框。

1. 选择 **Actions (操作)**，然后选择 **Modify (修改)**。

   将显示**修改实例**对话框。

1. 找到**失效转移**部分，将**提升层**设置为所需级别。

1. 选择**继续**。

1. 对于**修改计划**，选择**立即应用**。

1. 选择**修改实例**。

------
#### [ Using the AWS CLI ]

以下 AWS CLI 配置示例显示了当前的扩展配置。

在以下示例中，*user input placeholder*使用您自己的信息或配置参数替换每个示例。

可以使用`describe-db-clusters` AWS CLI 以下命令查看集群中所有实例的升级等级：

```
aws docdb describe-db-clusters \
    --db-cluster-identifier sample-cluster \
    --query 'DBClusters[0].DBClusterMembers' \
    --output table
```

此命令的输出如下：

```
--------------------------------------------------------------------------------------------------------
|                                          DescribeDBClusters                                          |
+--------------------------------+---------------------------------+------------------+----------------+
|  DBClusterParameterGroupStatus |      DBInstanceIdentifier       | IsClusterWriter  | PromotionTier  |
+--------------------------------+---------------------------------+------------------+----------------+
|  in-sync                       |  sample-serverless-instance-2   |  False           |  1             |
|  in-sync                       |  sample-serverless-instance-1   |  True            |  1             |
+--------------------------------+---------------------------------+------------------+----------------+
```

可以使用 `modify-db-instance` 命令修改特定实例的提升层：

```
aws docdb modify-db-instance \
    --db-instance-identifier sample-serverless-instance-2 \
    --promotion-tier 3
```

------

# Amazon DocumentDB 无服务器实例限制
<a name="docdb-serverless-instance-limits"></a>

对于 DocumentDB 无服务器实例，以下每个实例限制取决于实例当前的扩缩容量：
+ 实例内存 (GiB)
+ 连接（全部）
+ 光标限制
+ 打开事务。
+ 连接（活动）

以下各表描述了无服务器实例的每个实例限制如何根据实例当前的扩缩容量进行扩缩。

请注意，限制值会有所不同，具体取决于集群的 `MinCapacity` 扩缩配置是否已设置为大于二（2）。如果将 `MinCapacity` 设置为小于或等于 2，则光标限制、未完成事务和连接（活动）的限制值上限为较低的最大值。（设置上限的技术原因在于支持缩减到“空闲”状态。） 有关更多信息，请参阅 [空闲状态 (0.5 DCUs)](docdb-serverless-how-it-works.md#docdb-serverlerss-idle-state)。

**当 ≤ 1 时 db.serverless 实例限制 MinCapacity **


| 当前容量（DCU） | 实例内存 (GiB) | 连接（全部） | 光标限制 | 打开事务。 | 连接（活动） | 
| --- | --- | --- | --- | --- | --- | 
|  0.5  |  1  |  250  |  6  |  12  |  39  | 
|  1  |  2  |  500  |  12  |  24  |  79  | 
|  2  |  4  |  1000  |  24  |  48  |  173  | 
|  4  |  8  |  2000  |  48  |  96  |  416  | 
|  8  |  16  |  4000  |  96  |  192  |  1071  | 
|  16  |  32  |  8000  |  132  |  264  |  1550  | 
|  32  |  64  |  16000  |  132  |  264  |  1550  | 
|  64  |  128  |  32000  |  132  |  264  |  1550  | 
|  128  |  256  |  60000  |  132  |  264  |  1550  | 
|  256  |  512  |  60000  |  132  |  264  |  1550  | 

**如果大于 1，db.serverless 实例将受到限制 MinCapacity **


| 当前容量（DCU） | 实例内存 (GiB) | 连接（全部） | 光标限制 | 打开事务。 | 连接（活动） | 
| --- | --- | --- | --- | --- | --- | 
|  1.5  |  3  |  7250  |  18  |  36  |  124  | 
|  2  |  4  |  1000  |  24  |  48  |  173  | 
|  4  |  8  |  2000  |  48  |  96  |  416  | 
|  8  |  16  |  4000  |  96  |  192  |  1071  | 
|  16  |  32  |  8000  |  192  |  384  |  2709  | 
|  32  |  64  |  16000  |  384  |  768  |  4500  | 
|  64  |  128  |  32000  |  768  |  1536  |  4500  | 
|  128  |  256  |  60000  |  1536  |  3072  |  4500  | 
|  256  |  512  |  60000  |  3072  |  6144  |  4500  | 

您可以使用以下 CloudWatch 指标监控每个实例的限制并发出警报。有关亚马逊 DocumentDB CloudWatch 指标的更多信息，请参阅。[使用以下方式监控亚马逊 DocumentDB CloudWatch](cloud_watch.md)


| 资源 | CloudWatch 限制指标 | CloudWatch 使用量指标（最大 1 分钟） | CloudWatch 使用量指标 | 
| --- | --- | --- | --- | 
| 实例内存 | - | - | FreeableMemory | 
| 连接（全部） | DatabaseConnectionsLimit | DatabaseConnectionsMax | DatabaseConnections | 
| 游标 | DatabaseCursorsLimit | DatabaseCursorsMax | DatabaseCursors | 
| 事务 | TransactionsOpenLimit | TransactionsOpenMax | TransactionsOpen | 

# Amazon DocumentDB 无服务器扩缩配置
<a name="docdb-serverless-scaling-config"></a>



**Topics**
+ [为 DocumentDB 无服务器集群选择扩缩容量范围](#docdb-serverless-scaling-capacity-choosing)
+ [为 DocumentDB 无服务器集群选择 `MinCapacity` 设置](#docdb-serverless-scaling-mincapacity-choosing)
+ [为 DocumentDB 无服务器集群选择 `MaxCapacity` 设置](#docdb-serverless-scaling-maxcapacity-choosing)
+ [避免 out-of-memory错误](#docdb-serverless-scaling-mem-errors)
+ [为什么我的无服务器实例无法缩减？](#docdb-serverless-scaling-down)

## 为 DocumentDB 无服务器集群选择扩缩容量范围
<a name="docdb-serverless-scaling-capacity-choosing"></a>

在将任何 DocumentDB 无服务器实例添加到 Amazon DocumentDB 集群之前，必须先为集群设置 `ServerlessV2ScalingConfiguration` 参数。

`ServerlessV2ScalingConfiguration` 参数由两个值组成，这两个值定义了集群中任何无服务器实例的无服务器扩缩容量范围：
+ **`MinCapacity`**：集群中任何 DocumentDB 无服务器实例的最小扩缩容量。
+ **`MaxCapacity`**：集群中任何 DocumentDB 无服务器实例的最大扩缩容量。

## 为 DocumentDB 无服务器集群选择 `MinCapacity` 设置
<a name="docdb-serverless-scaling-mincapacity-choosing"></a>

最好是始终为 `MinCapacity` 选择 0.5。该值允许实例在完全空闲时缩减至最小容量，同时保持活动状态。但是，根据您使用该集群的方式和配置的其他设置，采用一个不同的最小容量可能更有效。选择最小容量设置时，请考虑以下因素：
+ DocumentDB 无服务器实例的扩缩率取决于其当前容量。当前容量越大，扩展速度就越快。如果您需要实例快速扩展到非常高的容量，请考虑将最小容量设置为其扩缩率可满足要求的值。
+ 如果您通常在预期工作负载特别高或特别低的情况下修改实例的实例类，则可以利用这个经验粗略估计等效的 DocumentDB 无服务器容量范围。要确定预置 Amazon DocumentDB 实例类型的内存大小，请参阅 [实例限制](limits.md#limits.instance)。

  例如，假设您在集群的工作负载较低时使用 `db.r6g.xlarge` 实例类。该实例类具有 32GiB 的内存。因此，您可以将 `MinCapacity` 指定为 16，以设置一个可以缩减至大约相同容量的无服务器实例。那是因为每个 DCU 对应大约 2GiB 的内存。如果 `db.r6g.xlarge` 实例有时未充分利用，您可以指定一个稍低的值，以便进一步缩减实例。
+ 如果当实例在缓冲区缓存中有一定量的数据时，应用程序的运行效率最高，请考虑指定一个最小 DCU 设置，让内存足够大，可以容纳经常访问的数据。否则，当无服务器实例缩减至较小的内存大小时，一些数据会从缓冲区缓存中移出。然后，随着时间的推移，当实例再扩展回来时，信息会读回到缓冲区缓存中。如果 I/O 要将数据带回缓冲区缓存的数量很大，则选择更高的最小 DCU 值可能会更有效。有关更多信息，请参阅 [实例大小调整](best_practices.md#best_practices-instance_sizing)。
+ 如果您的 DocumentDB 无服务器实例大部分时间都以特定容量运行，请考虑指定低于该基准但不要太低的最小容量设置。当前容量没有远低于所需容量时，无服务器实例可以最有效地估计扩展的规模和速度。
+ 如果您的预置工作负载的内存要求对于 T3 或 T4g 等小型实例类而言太高，请选择可提供与 R5 或 R6g 实例的内存相当的最低 DCU 设置。
+ 特别是，我们建议在使用指定功能时使用以下最低 `MinCapacity`（这些建议可能会发生变化）：
  + 性能见解 — 2 DCUs
  + 全局群集 — 8 DCUs （仅适用于主群集 AWS 区域）
+ 在 Amazon DocumentDB 中，复制发生在存储层，因此读取器容量不会直接影响复制。但是，对于独立扩展的 DocumentDB 无服务器读取器实例，请确保在有密集写入操作期间，最低容量足以处理工作负载，从而避免查询延迟。如果提升层 2-15 的读取器实例遇到性能问题，请考虑增大集群的最小容量。有关更改读取器实例是随写入器扩缩还是独立扩缩的详细信息，请参阅 [查看和修改无服务器读取器的提升层](docdb-serverless-managing.md#docdb-serverless-promo-tier)。

  如果您的集群包含 DocumentDB 无服务器读取器实例，则当读取器的提升层不是 0 或 1 时，读取器不会随写入器实例一起扩展。在这种情况下，设置较低的最小容量会导致复制滞后过大。这是因为在数据库忙碌时，读取器可能没有足够的容量来应用来自写入器的更改。建议您将最小容量设置为一个值，该值表示与写入器实例相当的内存量和 CPU 量。
+ DocumentDB 无服务器实例从最小容量扩展到最大容量所花的时间取决于其最小和最大 DCU 值之间的差异。与实例从小容量开始的情况相比，当实例的当前容量很大时，DocumentDB 无服务器会以更大的增量扩展。因此，如果您指定了相对较大的最大容量，且实例的大部分运行时间都接近该容量，则请考虑增大最小 DCU 设置。这样，空闲实例可以更快地扩展回到最大容量。
+ 某些实例限制由无服务器实例的当前容量决定，例如连接限制、光标限制和未完成事务限制。如果实例的当前容量很小，则限制也将相应地很小。如果您的无服务器实例缩减到其 `MinCapacity` 值时存在这些限制问题，则可以考虑将 `MinCapacity` 增加到更高的值。有关更多信息，请参阅 [Amazon DocumentDB 无服务器实例限制](docdb-serverless-instance-limits.md)。
+ 此外，如果设置为小于或等于 1.0，则某些实例限制的最大值上限为较低的最大值 DCUs，例如活动连接限制、游标限制和未结交易限制。`MinCapacity`如果这些上限不足以应付您的工作负载，请使用至少 1.5 DCUs 的`MinCapacity`值。有关更多信息，请参阅 [Amazon DocumentDB 无服务器实例限制](docdb-serverless-instance-limits.md)。

有关如何修改集群扩缩配置的说明，请参阅 [管理 Amazon DocumentDB 无服务器](docdb-serverless-managing.md)。

## 为 DocumentDB 无服务器集群选择 `MaxCapacity` 设置
<a name="docdb-serverless-scaling-maxcapacity-choosing"></a>

最好是始终为最大 DocumentDB 无服务器容量设置选择一些较高的值。较大的最大容量让实例可以在运行密集型工作负载时最大限度地扩展。使用较小的值可以避免产生意外费用。根据您使用该集群的方式以及配置的其他设置，最有效的值可能会比原先想象的值更高或更低。选择最大容量设置时，请考虑以下因素：
+ 最大容量必须至少与最小容量相同。可以将最小容量和最大容量设置为完全相同。但是，在这种情况下，容量永远不会扩展或缩减。因此，除了在测试状况下，对最小和最大容量使用完全相同的值并不合适。
+ 最大容量必须至少为 1.0 DCUs ，最多必须为 256 DCUs。
+ 我们建议监控无服务器实例的扩缩和资源使用情况。如果您的无服务器实例经常扩展到最大容量并达到资源限制（例如，当 `DCUUtilization` 指标为 100.0 时），我们建议您选择更高的 `MaxCapacity` 值。有关更多信息，请参阅 [监控 Amazon DocumentDB 无服务器](docdb-serverless-monitoring.md)。
+ 如果您通常在预期工作负载特别高或特别低的情况下修改预置实例的实例类，则可以利用这个经验估计等效的 DocumentDB 无服务器容量范围。要确定预置 Amazon DocumentDB 实例的内存大小，请参阅 [实例限制](limits.md#limits.instance)。

  例如，假设您在集群的工作负载较高时使用 `db.r6g.4xlarge` 实例类。该实例类具有 128GiB 的内存。因此，您可以将最大 DCU 设置指定为 64，从而设置一个可以扩展至大约相同容量的无服务器实例。那是因为每个 DCU 对应大约 2GiB 的内存。如果 `db.r6g.4xlarge` 实例有时没有足够的容量来有效处理工作负载，则可以指定一个稍高的值来让实例进一步扩展。
+ 如果您的数据库使用有预算上限，请选择一个即使所有无服务器实例始终以最大容量运行时仍能保持在该上限内的值。请记住，如果您的集群中有 n 个无服务器实例，则该集群在任何时刻可以使用的理论最大无服务器容量是 n 乘以集群的最大 DCU 设置。（例如，如果一些读取器独立于写入器进行扩展，则实际消耗量可能更少。）
+ 如果您使用无服务器读取器实例从写入器实例中分流一些只读工作负载，您可以选择较低的最大容量设置。这样做是为了反映这一点，每个读取器实例不需要像集群只包含一个实例那样扩展得那么高。
+ 假设您想防止由于应用程序中的数据库参数配置错误或低效查询而导致过度使用。在这种情况下，您可以通过选择一个最大容量设置，使之低于可以设置的绝对最高容量，从而避免意外过度使用。
+ 如果由于实际用户活动造成的峰值很少见但确实会发生，那么在选择最大容量设置时可以考虑这些情况。如果优先级是使应用程序以全面的性能和可扩展性保持运行，则可以指定比正常使用情况下的容量更大的最大容量设置。如果在非常极端的活动高峰期间应用程序可以降低吞吐量运行，则可以选择稍低的最大容量设置。确保选择的设置仍然有足够的内存和 CPU 资源以使应用程序保持运行。
+ 如果您在集群中启用了增加每个实例内存使用量的设置，请在决定最大 DCU 值时将该内存考虑在内。此类设置包括 Performance Insights 和全局集群的设置。确保最大 DCU 值允许无服务器实例扩展到足以在使用这些功能时处理工作负载。有关排除由于低最大 DCU 设置和增加内存开销的 Amazon DocumentDB 功能组合而引起的问题的信息，请参阅下面的 [避免 out-of-memory错误](#docdb-serverless-scaling-mem-errors)。
+ 特别是，我们建议在使用指定功能时使用以下最低 `MaxCapacity`（这些建议可能会发生变化）：
  + 在具有大量数据量的集群上创建无服务器实例 — 2 DCUs （这包括在集群还原过程中创建无服务器实例。）
+ 某些实例限制由实例的当前容量决定，例如连接限制、光标限制和未完成事务限制。在为工作负载选择 `MaxCapacity` 值时，请务必牢记这些实例限制，以避免因其中某项限制而成为瓶颈。有关更多信息，请参阅 [Amazon DocumentDB 无服务器实例限制](docdb-serverless-instance-limits.md)。

有关如何修改集群扩缩配置的说明，请参阅 [管理 Amazon DocumentDB 无服务器](docdb-serverless-managing.md)。

## 避免 out-of-memory错误
<a name="docdb-serverless-scaling-mem-errors"></a>

如果您的其中一个 DocumentDB 无服务器实例持续达到最大容量的限制，Amazon DocumentDB 会通过将实例设置为 **incompatible-parameters** 状态来表明这种状况。实例处于 **incompatible-parameters** 状态时，某些操作会被阻止。例如，您无法升级引擎版本。有关 Amazon DocumentDB 实例状态的更多信息，请参阅[监控 Amazon DocumentDB 实例的状态](https://docs.aws.amazon.com//documentdb/latest/developerguide/monitoring_docdb-instance_status.html)。

通常，当您的实例由于 out-of-memory错误而频繁重启时，它会进入此状态。发生这种类型的重新启动时，Amazon DocumentDB 会记录一个事件。要查看资源事件，请参阅 [查看 Amazon DocumentDB 事件](managing-events.md#viewing-events)。由于开启性能详情等设置会产生开销，因此通常会出现高内存使用率。实例上存在繁重的工作负载，或者要管理与大量架构对象相关联的元数据时，也会导致出现高内存使用率。

如果内存压力变得更低，以致实例不会经常达到最大容量，Amazon DocumentDB 会自动将实例状态更改回可用。

要从这种情况中恢复，您可以采取以下部分或全部操作：
+ 通过更改集群的最小 DocumentDB 容量单位（DCU）值，提高无服务器实例的容量下限。这样做可以避免空闲数据库缩减到某个容量，以至于内存太少，无法满足集群中启用的功能所需的内存。更改集群的 DCU 设置后，重启无服务器实例。这样做会评估 Amazon DocumentDB 是否可以将状态重置回可用。
+ 通过更改集群的最大 DCU 值，提高无服务器实例的容量上限。这样做可避免繁忙的数据库无法扩展到某个容量，以至于没有足够的内存来满足集群中启用的功能和数据库工作负载所需的内存。更改集群的 DCU 设置后，重启无服务器实例。这样做会评估 Amazon DocumentDB 是否可以将状态重置回可用。
+ 关闭需要内存开销的配置设置。例如，假设您已启用性能详情等功能，但尚未使用此功能。如果是这样，您可以将其关闭。或者，您可以将集群的最小和最大容量值调高，以便考虑到这些类型的功能使用的内存。有关选择最小和最大容量设置的指引，请参阅[为 DocumentDB 无服务器集群选择扩缩容量范围](#docdb-serverless-scaling-capacity-choosing)。
+ 减少实例上的工作负载。例如，您可以将读取器实例添加到集群中，以便将只读查询的负载分散到更多实例中。

## 为什么我的无服务器实例无法缩减？
<a name="docdb-serverless-scaling-down"></a>

在某些情况下，即使数据库上没有负载，DocumentDB 无服务器也不会缩减至最小容量。出现这种情况的原因如下：
+ 性能详情可以增加资源使用量并防止数据库缩减到最低容量。这些功能如下所示：
+ 如果读取器实例未缩减到最小值，并保持在与写入器实例相同或更高的容量，请检查读取器实例的优先级层。第 0 层或第 1 层的 DocumentDB 无服务器读取器实例的最小容量至少与写入器实例一样高。将读取器的优先级层更改为 2 或更高，这样它就可以独立于写入器而纵向扩展和缩减。有关更多信息，请参阅 [Amazon DocumentDB 无服务器扩缩](docdb-serverless-how-it-works.md#docdb-serverless-scaling)。
+ 繁重的数据库工作负载可能会增加资源使用量。
+ 较大的数据库卷可能会增加资源使用量。Amazon DocumentDB 使用内存和 CPU 资源进行集群管理。Amazon DocumentDB 需要更多的 CPU 和内存来管理具有更大数据库卷的集群。如果您的集群的最小容量低于集群管理所需的最小容量，则您的集群不会缩减到最小容量。
+ 后台维护活动可能会定期增加资源使用量。

如果数据库仍无法缩减到配置的最小容量，则停止并重新启动数据库，以回收可能随着时间推移而累积的所有内存碎片。停止和启动数据库会导致停机，因此我们建议谨慎执行此操作。

# 监控 Amazon DocumentDB 无服务器
<a name="docdb-serverless-monitoring"></a>

要了解有关在 Amazon DocumentDB 中监控的更多信息，请参阅 [监控 Amazon DocumentDB](monitoring_docdb.md)。

**Topics**
+ [内存不足：incompatible-parameters 状态](#w2aac41c27b7)
+ [DocumentDB 无服务器的亚马逊 CloudWatch 指标](#w2aac41c27b9)
+ [使用性能详情监控 DocumentDB 无服务器性能](#w2aac41c27c11)

## 内存不足：incompatible-parameters 状态
<a name="w2aac41c27b7"></a>

如果您的其中一个无服务器实例持续达到最大容量的限制，Amazon DocumentDB 会通过将实例设置为 incompatible-parameters 状态来表明这种状况。有关更多信息，请参阅 [避免 out-of-memory错误](docdb-serverless-scaling-config.md#docdb-serverless-scaling-mem-errors)。

## DocumentDB 无服务器的亚马逊 CloudWatch 指标
<a name="w2aac41c27b9"></a>

要详细了解如何使用亚马逊 Docu CloudWatch mentDB，请参阅。[使用以下方式监控亚马逊 DocumentDB CloudWatch](cloud_watch.md)

您可以在中查看您的无服务器实例 CloudWatch ，通过该`ServerlessDatabaseCapacity`指标监控每个实例消耗的容量。您还可以监控所有标准的 DocumentDB CloudWatch 指标，例如`DatabaseConnections`和查询。有关您可以监控的 Amazon DocumentDB CloudWatch 指标的完整列表，请参阅。[使用以下方式监控亚马逊 DocumentDB CloudWatch](cloud_watch.md)监控以下 CloudWatch 实例级指标非常重要，有助于您了解您的 DocumentDB 无服务器实例是如何向上和向下扩展的。所有这些指标每秒计算一次。这样，您就可以监控无服务器实例的当前状态。您可以设置警报，以便在任何无服务器实例接近与容量相关的指标阈值时通知您。您可以确定最小和最大容量设置是否合适，或者是否需要调整它们。您可以确定将精力集中在哪方面来优化数据库的效率。
+ **`ServerlessDatabaseCapacity`**— 作为实例级别指标，它报告当前实例容量所 DCUs 代表的数量。作为集群级指标，它代表集群中所有 DocumentDB 无服务器实例的 `ServerlessDatabaseCapacity` 值的平均值。
+ **`DCUUtilization.`**：此指标是 DocumentDB 无服务器中的新指标。此值以百分比表示。其计算方法是 `ServerlessDatabaseCapacity` 指标的值除以集群的最大 DCU 值。解读此指标并采取行动时考虑以下准则：
  + 如果此指标接近值 `100.0`，则实例已扩展到能达到的最大容量。考虑增大集群的最大 DCU 设置。这样，写入器和读取器实例都可以扩展到更高的容量。
  + 假设只读工作负载导致读取器实例的 `DCUUtilization` 接近 `100.0`，而写入器实例未接近其最大容量。在这种情况下，请考虑向集群添加额外的读取器实例。这样，您可以将工作负载的只读部分分散到更多实例上，从而减少每个读取器实例的负载。
  + 假设您正在运行生产应用程序，其中性能和可扩展性是主要考虑因素。在这种情况下，您可以将集群的最大 DCU 值设置为较高的数字。您的目标是让 `DCUUtilization` 指标始终低于 100.0。使用较高的最大 DCU 值，您可以确信有足够的空间来应对数据库活动中出现的意外高峰。您只需为实际使用的数据库容量付费。
+ **`CPUUtilization`**：该指标在 DocumentDB 无服务器中的解读不同于预置实例中的解读。对于 DocumentDB 无服务器，此值是一个百分比，其计算方法是当前使用的 CPU 量除以在集群的最大 DCU 值基础上提供的 CPU 容量。当实例持续使用其 CPU 容量的很大一部分时，Amazon DocumentDB 会自动监控此值并扩展无服务器实例。

  如果此指标接近值 `100.0`，则该实例已达到其最大 CPU 容量。考虑增大集群的最大 DCU 设置。如果读取器实例上的这个指标接近值 `100.0`，请考虑向集群添加额外的读取器实例。这样，您可以将工作负载的只读部分分散到更多实例上，从而减少每个读取器实例的负载。
+ **`FreeableMemory`**：此值表示当 DocumentDB 无服务器实例已扩展到其最大容量时，提供的未使用内存量。对于当前容量低于最大容量的每个 DCU，此值增加大约 2GiB。因此，在实例扩展到其可以达到的最大值之前，此指标不会接近零。

  如果此指标接近值零，则实例已扩展到其可以达到的最大值，并且已接近其可用内存的限制。考虑增大集群的最大 DCU 设置。如果读取器实例上的这个指标接近值零，请考虑向集群添加额外的读取器实例。这样，工作负载的只读部分可以分散到更多实例上，从而减少每个读取器实例的内存使用。
+ **`TempStorageIops`**：在连接到实例的本地存储上完成的 IOPS 数。它包括读取和写入的 IOPS。此指标表示计数，每秒测量一次。这是 DocumentDB 无服务器的新指标。有关更多信息，请参阅 [使用以下方式监控亚马逊 DocumentDB CloudWatch](cloud_watch.md)。
+ **`TempStorageThroughput`**：与实例关联的本地存储的传入和传出数据量。此指标表示字节数，每秒测量一次。这是 DocumentDB 无服务器的新指标。有关更多信息，请参阅 [使用以下方式监控亚马逊 DocumentDB CloudWatch](cloud_watch.md)。

通常情况下，DocumentDB 无服务器实例的大多数扩展是因内存使用和 CPU 活动而引起。`TempStorageIops` 和 `TempStorageThroughput` 指标可以帮助您诊断实例与本地存储设备之间传输的网络活动导致意外容量增加的罕见情况。要监控其他网络活动，您可以使用以下现有指标：
+ `NetworkReceiveThroughput`
+ `NetworkThroughput`
+ `NetworkTransmitThroughput`
+ `StorageNetworkReceiveThroughput`
+ `StorageNetworkThroughput`
+ `StorageNetworkTransmitThroughput`

### DocumentDB 无服务器 CloudWatch 指标如何适用于您的账单 AWS
<a name="w2aac41c27b9c13"></a>

 AWS 账单上的 DocumentDB 无服务器费用是根据您可以监控的相同`ServerlessDatabaseCapacity`指标计算的。如果您仅使用了部分小时 DocumentDB 无服务器容量，则计费机制可能与该指标的计算 CloudWatch 平均值不同。如果系统问题导致 CloudWatch 指标在短时间内不可用，情况也会有所不同。因此，如果您自己根据 `ServerlessDatabaseCapacity` 平均值进行计算，可能会在账单上看到 DCU 小时值略有不同。

### 文档数据库无服务器指标的 Amazon CloudWatch CLI 命令示例
<a name="w2aac41c27b9c15"></a>

以下 AWS CLI 示例演示了如何监控与 DocumentDB 无服务器相关的最重要 CloudWatch 指标。在每种情况下，请将 `--dimensions` 参数的 `Value=` 字符串替换为您自己的 DocumentDB 无服务器实例的标识符。

以下 Linux 示例显示了实例的最小容量、最大容量和平均容量值，在一小时内每 10 分钟测量一次。Linux 日期命令指定相对于当前日期和时间的开始时间和结束时间。`--query` 参数中的 `sort_by` 函数根据 `Timestamp` 字段按时间顺序对结果进行排序。

```
aws cloudwatch get-metric-statistics \
    --metric-name "ServerlessDatabaseCapacity" \
    --start-time "$(date -d '1 hour ago')" \
    --end-time "$(date -d 'now')" \
    --period 600 \
    --namespace "AWS/DocDB" \
    --statistics Minimum Maximum Average \
    --dimensions Name=DBInstanceIdentifier,Value=my_instance \
    --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \
    --output table
```

以下 Linux 示例演示了监控集群中实例的容量。将衡量实例的最小容量、最大容量和平均容量利用率。在三个小时内，每小时进行一次测量。这些示例使用表示上限百分比的`DCUUtilization`指标 DCUs，而不是`ServerlessDatabaseCapacity`表示固定数量的 DCUs。这样，您就不需要知道容量范围内的最小和最大 DCU 值的实际数字。您可以看到 0 到 100 之间的百分比。

```
aws cloudwatch get-metric-statistics \
    --metric-name "DCUUtilization" \
    --start-time "$(date -d '3 hours ago')" \
    --end-time "$(date -d 'now')" \
    --period 3600 \
    --namespace "AWS/DocDB" \
    --statistics Minimum Maximum Average \
    --dimensions Name=DBInstanceIdentifier,Value=my_instance \
    --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \
    --output table
```

下面的 Linux 示例执行的测量与之前的示例类似。在本例中，测量值针对 `CPUUtilization` 指标。在 1 小时内，每 10 分钟进行一次测量。这些数字表示已使用的可用 CPU 的百分比，基于实例的最大容量设置中可用的 CPU 资源。

```
aws cloudwatch get-metric-statistics \
    --metric-name "CPUUtilization" \
    --start-time "$(date -d '1 hour ago')" \
    --end-time "$(date -d 'now')" \
    --period 600 \
    --namespace "AWS/DocDB" \
    --statistics Minimum Maximum Average \
    --dimensions Name=DBInstanceIdentifier,Value=my_instance \
    --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \
    --output table
```

下面的 Linux 示例执行的测量与之前的示例类似。在本例中，测量值针对 `FreeableMemory` 指标。在 1 小时内，每 10 分钟进行一次测量。

```
aws cloudwatch get-metric-statistics \
    --metric-name "FreeableMemory" \
    --start-time "$(date -d '1 hour ago')" \
    --end-time "$(date -d 'now')" \
    --period 600 \
    --namespace "AWS/DocDB" \
    --statistics Minimum Maximum Average \
    --dimensions Name=DBInstanceIdentifier,Value=my_instance \
    --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \
    --output table
```

## 使用性能详情监控 DocumentDB 无服务器性能
<a name="w2aac41c27c11"></a>

您可以使用性能详情来监控 DocumentDB 无服务器实例的性能。有关性能详情的程序，请参阅[使用 Performance Insights 进行监控](performance-insights.md)。

以下新性能详情计数器适用于 DocumentDB 无服务器实例：
+ **`os.general.serverlessDBCapacity`**— 中实例的当前容量 DCUs。该值对应于实例的`ServerlessDatabaseCapacity` CloudWatch 指标。
+ **`os.general.dcuUtilization`**：当前容量占最大配置容量的百分比。该值对应于实例的`DCUUtilization` CloudWatch 指标。
+ **`os.general.maxConfiguredDcu`**：您为此 DocumentDB 无服务器实例配置的最大容量。它的衡量标准是 DCUs。
+ **`os.general.minConfiguredDcu`**：您为此 DocumentDB 无服务器实例配置的最小容量。它的衡量标准是 DCUs。

有关性能详情计数器的完整列表，请参阅 [Performance Insights 的计数器指标](performance-insights-counter-metrics.md)。

在性能详情中为 DocumentDB 无服务器实例显示 vCPU 值时，这些值表示基于实例的 DCU 值的估计值。默认时间间隔为 1 分钟，任何小数 vCPU 值将向上舍入到最接近的整数。对于更长的时间间隔，显示的 vCPU 值是每分钟的整数 vCPU 值的平均值。