本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Performance Insights 概念
平均活动会话数
数据库负载(数据库负载)衡量数据库中的活动级别。性能详情的关键指标是 DB Load
,每秒收集一次。的单位DBLoad
指标是“AAS”(AAS)对于 DocumentDB 实例。
网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的活跃会话是已将作业提交到 DocumentDB 实例并且正在等待响应的连接。例如,如果您将查询提交到 DocumentDB 实例,则数据库会话在实例处理该查询时将处于活动状态。
为了获取平均活动会话数,性能详情会对同时运行查询的会话数进行采样。平均活动会话数是会话总数除以样本总数。下表显示了正在运行的查询的五个连续示例。
示例 | 运行查询的会话数 | 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 等待状态。当系统经常处理大型查询、集合扫描或缓冲池太小而无法处理工作集时,频繁寻呼缓冲池可能会更频繁地发生。 |
CPU |
当会话在 CPU 上等待时,会出现 CPU 等待状态。 |
收藏锁 |
这些区域有: CollectionLock 在会话等待获取集合锁定时,会发生等待状态。当集合上有 DDL 操作时,会发生这些事件。 |
文档锁 |
这些区域有: DocumentLock 在会话等待获取文档锁定时,会发生等待状态。对同一文档进行大量并发写入操作将导致该文档出现更多的 DocumentLock 等待状态。 |
SystemLock |
这些区域有: SystemLock 当会话在系统上等待时,会出现等待状态。当系统上经常出现长时间运行的查询、长时间运行的事务或高并发时,可能会发生这种情况。 |
IO |
当会话等待 IO 完成时,会出现 IO 等待状态。 |
bufferLock |
这些区域有: BufferLock 在会话等待获取缓冲区中共享页面上的锁定时,会发生等待状态。如果其他进程在请求的页面上保留打开的光标,则 BufferLock 等待状态可能会延长。 |
LowMemCottle |
这些区域有: LowMemThrottle 由于 Amazon DocumentDB 实例的沉重内存压力导致会话正在等待时,会出现等待状态。如果此状态持续很长时间,请考虑扩展实例以提供额外的内存。有关更多信息,请参阅 。资源管理器. |
背景活动 |
这些区域有: BackgroundActivity 当会话正在等待内部系统进程时,会出现等待状态。 |
其他 |
其他等待状态是内部等待状态。如果此状态持续很长一段时间,请考虑终止此查询。有关更多信息,请参阅 。如何查找并终止长时间运行或受阻的查询? |
主要查询
而等待状态显示瓶颈,而主要查询则显示哪些查询对数据库负载的贡献最大。例如,当前可能正在数据库上运行许多查询,但单个查询可能会占用 99% 的数据库负载。在这种情况下,高负载可能表示查询存在问题。
最大 vCPU
在控制面板中,数据库负载图表会收集、聚合和显示会话信息。要查看活动会话是否超过最大 CPU,请查看它们与最大 vCPU 线的关系。这些区域有:最大 vCPU值由 DocumentDB 实例的 vCPU(虚拟 CPU)内核数决定。
如果数据库负载经常高于最大 vCPU 线并且主要等待状态为 CPU,则表示 CPU 过载。在这种情况下,您可能需要限制与实例的连接数,优化具有高 CPU 负载的任何查询,或考虑使用更大的实例类。如果始终有大量实例处于任何等待状态,则表示可能存在要解决的瓶颈或资源争用问题。即使数据库负载未越过最大 vCPU 线,也可能会出现此问题。