本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
无服务器监控 Amazon DocumentDB
要了解有关在 Amazon DocumentDB 中进行监控的更多信息,请参阅。监控 Amazon DocumentDB
内存不足:参数不兼容状态
如果您的一个无服务器实例持续达到其最大容量限制,Amazon DocumentDB 会通过将该实例设置为参数不兼容状态来表示这种情况。有关更多信息,请参阅 避免 out-of-memory错误。
DocumentDB 无服务器的亚马逊 CloudWatch 指标
要详细了解如何使用亚马逊 Docu CloudWatch mentDB,请参阅。使用以下方式监控亚马逊 DocumentDB CloudWatch
您可以在中查看您的无服务器实例 CloudWatch ,通过该ServerlessDatabaseCapacity
指标监控每个实例消耗的容量。您还可以监控所有标准的 DocumentDB CloudWatch 指标,例如DatabaseConnections
和查询。有关您可以监控的 Amazon DocumentDB CloudWatch 指标的完整列表,请参阅。使用以下方式监控亚马逊 DocumentDB CloudWatch监控以下 CloudWatch 实例级指标非常重要,有助于您了解您的 DocumentDB 无服务器实例是如何向上和向下扩展的。所有这些指标每秒计算一次。这样,您就可以监控无服务器实例的当前状态。您可以设置警报,以便在任何无服务器实例接近容量相关指标的阈值时通知您。您可以确定最小和最大容量设置是否合适,或者是否需要调整它们。您可以确定将精力集中在哪方面来优化数据库的效率。
ServerlessDatabaseCapacity
— 作为实例级别指标,它报告当前实例容量所 DCUs 代表的数量。作为集群级别的指标,它表示集群中所有 DocumentDB 无服务器实例的平均ServerlessDatabaseCapacity
值。DCUUtilization.
— 此指标是 DocumentDB 无服务器中的新指标。此值以百分比表示。计算方法为ServerlessDatabaseCapacity
指标值除以集群的最大 DCU 值。解读此指标并采取行动时考虑以下准则:如果该指标的值接近于
100.0
,则表示实例已最大限度地扩大规模。考虑增加集群的最大 DCU 设置。这样,写入器和读取器实例都可以扩展到更高的容量。假设只读工作负载导致读取器实例接近 a
DCUUtilization
100.0
,而写入器实例未接近其最大容量。在这种情况下,可以考虑向集群添加其他读取器实例。这样,您就可以将工作负载的只读部分分散到更多实例中,从而减少每个读取器实例的负载。假设您正在运行生产应用程序,其中性能和可扩展性是主要考虑因素。在这种情况下,您可以将群集的最大 DCU 值设置为较高的数字。您的目标是让该
DCUUtilization
指标始终低于 100.0。使用较高的最大 DCU 值,您可以确信有足够的空间以防数据库活动出现意外高峰。您只需为实际使用的数据库容量付费。
CPUUtilization
— 在 DocumentDB 无服务器中,此指标的解释与在预配置实例中的解释不同。对于 DocumentDB 无服务器,此值是一个百分比,计算方法是当前使用的 CPU 量除以集群最大 DCU 值下可用的 CPU 容量。Amazon DocumentDB 会自动监控此值,并在您的无服务器实例持续使用较高比例的 CPU 容量时扩展该实例。如果该指标的值接近于
100.0
,则表示实例已达到其最大 CPU 容量。考虑增加集群的最大 DCU 设置。如果读取器实例100.0
上的该指标值接近于,请考虑向集群中添加其他读取器实例。这样,您可以将工作负载的只读部分分散到更多实例中,从而减少每个读取器实例的负载。FreeableMemory
— 此值表示将 DocumentDB 无服务器实例扩展到其最大容量时可用的未使用内存量。对于当前容量低于最大容量的每个 DCU,该值将增加大约 2 GiB。因此,在实例最大限度地扩大规模之前,该指标不会接近零。如果该指标的值接近零,则表示该实例已尽可能扩大规模,并且已接近其可用内存的限制。考虑增加集群的最大 DCU 设置。如果读取器实例上的该指标值接近零,请考虑向集群中添加其他读取器实例。这样,工作负载的只读部分可以分布在更多实例中,从而减少每个读取器实例的内存使用量。
TempStorageIops
— 在连接到实例的本地存储上完成的 IOPS 数量。它包括读取和写入的 IOPS。此指标表示计数,每秒测量一次。这是 DocumentDB 无服务器的新指标。有关更多信息,请参阅 使用以下方式监控亚马逊 DocumentDB CloudWatch。TempStorageThroughput
— 传入和传出与实例关联的本地存储的数据量。此指标表示字节数,每秒测量一次。这是 DocumentDB 无服务器的新指标。有关更多信息,请参阅 使用以下方式监控亚马逊 DocumentDB CloudWatch。
通常,DocumentDB 无服务器实例的大部分扩展是由内存使用和 CPU 活动引起的。TempStorageIops
和TempStorageThroughput
指标可以帮助您诊断在实例和本地存储设备之间传输的网络活动导致容量意外增加的罕见情况。要监控其他网络活动,您可以使用以下现有指标:
NetworkReceiveThroughput
NetworkThroughput
NetworkTransmitThroughput
StorageNetworkReceiveThroughput
StorageNetworkThroughput
StorageNetworkTransmitThroughput
DocumentDB 无服务器 CloudWatch 指标如何应用于您的账单 AWS
AWS 账单上的 DocumentDB 无服务器费用是根据您可以监控的相同ServerlessDatabaseCapacity
指标计算的。如果您仅使用了部分小时 DocumentDB 无服务器容量,则计费机制可能与该指标的计算 CloudWatch 平均值不同。如果系统问题导致 CloudWatch 指标在短时间内不可用,情况也可能有所不同。因此,你在账单上看到的DCU-Hours值可能与你自己计算平均值时数略有不同。ServerlessDatabaseCapacity
DocumentDB 无服务器指标的 Amazon CloudWatch CLI 命令示例
以下 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
使用 Performance Insights 监控文档数据库的无服务器性能
您可以使用 Performance Insights 来监控 DocumentDB 无服务器实例的性能。有关性能详情的程序,请参阅使用 Performance Insights 进行监控。
以下新的 Performance Insights 计数器适用于 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 中显示 DocumentDB 无服务器实例的 vCPU 值时,这些值表示基于该实例 DCU 值的估计值。默认时间间隔为 1 分钟,任何小数 vCPU 值将向上舍入到最接近的整数。对于更长的时间间隔,显示的 vCPU 值是每分钟的整数 vCPU 值的平均值。