本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
最佳实践
了解使用 Amazon DocumentDB 弹性集群的最佳实践。所有基于实例的 Amazon DocumentDB 集群的最佳实践也适用于弹性集群。随着新的最佳实践的确定,此节将不断更新。
选择分片键
以下列表描述了创建分片键的指导原则。
使用均匀分发的哈希键分发数据遍及您集群中的所有分片(避免热键)。
在所有读取/更新/删除请求中使用分片键,以避免分散聚集查询。
在执行读取/更新/删除操作时,请避免嵌套的分片键。
进行批量操作时,请将
ordered
设置成虚假,从而使所有分片可以并行运行并改善延迟。
连接管理
以下列表描述了管理与您数据库连接的指导原则。
监控您的连接计数以及新连接开闭的频率。
将您的连接分布到按您的应用程序配置的所有子网。如果您的集群配置在多个子网中,但您只使用这些子网的子集,则您可能在最大连接数上遇到瓶颈。
未分片的集合
以下内容描述了用于未分片集合的指导原则。
在处理未分片的集合时,为了分配负载,请尝试将高度利用的未分片集合保留在不同的数据库上。Amazon DocumentDB 弹性集群跨不同分片安置数据库,并将同一数据库的未分片集合共同定位在同一个分片上。
扩展弹性集群
以下列表描述了扩展弹性集群的指导原则。
扩展操作可能会导致短时间的间断性数据库和网络错误。如果可能,请避免在高峰时段扩展。尝试在维护窗口期间扩展。
相比增加或减少分片计数,首选向上和向下扩展分片容量(更改每个分片的 vCPU 计数)以增加计算能力,因为它更快且具有更短的间断性数据库和网络错误持续时间。
在预测增长时,最好增加分片计数,而非扩展分片容量。这使您能够通过增加需要快速扩展的场景的分片容量,来扩展您的集群。
监控您的客户端重试策略并使用指数回退和抖动进行重试,以避免在扩展情况下出现错误时数据库过载。
监控弹性集群
以下列表描述了监控弹性集群的指导原则。
-
跟踪每个分片指标的峰值/平均值比率,以确定您是否驱动不均衡的流量(有热键/热点)。跟踪峰值/平均值比率的关键指标是:
PrimaryInstanceCPUUtilization
这可以在每个分片层面监控。
在集群层面,您可以监视平均到 p99 的偏差。
PrimaryInstanceFreeableMemory
这可以在每个分片层面监控。
在集群层面,您可以监视平均到 p99 的偏差。
DatabaseCursorsMax
这应在每个分片层面监控以确定偏差。
Documents-Inserted/Updated/Returned/Deleted
这应在每个分片层面监控以确定偏差。