Performance Insights 概念 - Amazon DocumentDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Performance Insights 概念

平均活动会话数

数据库负载(数据库负载)衡量数据库中的活动级别。Performance Insights 的关键指标是 DB Load,每秒收集一次。DBLoad 指标的单位是 DocumentDB 实例的平均活动会话数 (AAS)

活动会话是已将作业提交到 DocumentDB 实例并且正在等待响应的连接。例如,如果您将查询提交到 DocumentDB 实例,则数据库会话在实例处理该查询时将处于活动状态。

为了获取平均活动会话数,Performance Insights 会对同时运行查询的会话数进行采样。平均活动会话数是会话总数除以样本总数。下表显示了正在运行的查询的五个连续示例。

示例 运行查询的会话数 AAS 计算

1

2

2

2 个会话/1 个样本

2

0

1

2 个会话/2 个样本

3

4

2

6 个会话/3 个样本

4

0

1.5

6 个会话/4 个样本

5

4

2

10 个会话/5 个样本

在上一示例中,1-5 时间间隔的数据库负载为 2 AAS。数据库负载的增加意味着,平均而言数据库上运行的会话更多。

维度

DB Load 指标不同于其他时间序列指标,因为您可以将它分为称为维度的子组件。您可以将维度视为 DB Load 指标的不同特征的类别。诊断性能问题时,最有用的维度是等待状态主要查询

等待状态

等待状态 会导致查询语句等待特定事件发生,然后才能继续运行。例如,查询语句可能会一直等到已锁定的资源得到解锁。通过结合使用 DB Load 和等待状态,您可以全面了解会话状态。以下是各种 DocumentDB 等待状态:

DocumentDB 等待状态 等待状态描述

Latch

当会话等待分页缓冲池时,就会出现 Latch 等待状态。当系统频繁处理大型查询、集合扫描或缓冲池太小而无法处理工作集时,频繁分页和退出缓冲池的情况可能会更频繁。

CPU

当会话在 CPU 上等待时,就会出现 CPU 等待状态。

CollectionLock

当会话等待获取集合上的锁时,就会出现 CollectionLock 等待状态。当对集合进行 DDL 操作时,就会发生这些事件。

DocumentLock

当会话等待获取文档的锁时,就会出现 DocumentLock 等待状态。对同一文档的大量并发写入将导致该文档上出现更多 DocumentLock 等待状态。

SystemLock

当会话在系统上等待时,就会出现 SystemLock 等待状态。当系统上频繁出现长时间运行的查询、长时间运行的事务或高并发时,可能会发生这种情况。

IO

当会话等待 IO 完成时,就会出现 IO 等待状态。

BufferLock

当会话等待获取缓冲区中共享页面上的锁时,就会出现 BufferLock 等待状态。如果其他进程在请求的页面上持有打开的游标,则 BufferLock 等待状态可能会延长。

LowMemThrottle

当会话因 Amazon DocumentDB 实例内存压力过大而等待时,就会出现 LowMemThrottle 等待状态。如果此状态持续很长时间,请考虑纵向扩展实例以提供额外的内存。有关更多信息,请参阅资源管理器

BackgroundActivity

当会话等待内部系统进程时,就会出现 BackgroundActivity 等待状态。

其他

其他等待状态是内部等待状态。如果此状态持续很长时间,请考虑终止此查询。有关更多信息,请参阅如何查找并终止长时间运行或受阻的查询?

主要查询

等待状态太显示瓶颈,主要查询则显示哪些查询对数据库负载的贡献最大。例如,当前可能正在数据库上运行许多查询,但单个查询可能会占用 99% 的数据库负载。在这种情况下,高负载可能表示查询存在问题。

最大 vCPU

在控制面板中,数据库负载图表会收集、聚合和显示会话信息。要查看活动会话是否超过最大 CPU,请查看它们与最大 vCPU 线的关系。最大 vCPU 值由 DocumentDB 实例的 vCPU(虚拟 CPU)内核数决定。

如果数据库负载经常高于最大 vCPU 线并且主要等待状态为 CPU,则表示 CPU 过载。在这种情况下,您可能需要限制与实例的连接数,优化具有高 CPU 负载的任何查询,或考虑使用更大的实例类。如果始终有大量实例处于任何等待状态,则表示可能存在要解决的瓶颈或资源争用问题。即使数据库负载未越过最大 vCPU 线,也可能会出现此问题。