从 Neo4j 迁移到 Neptune 时预调配基础设施 - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

从 Neo4j 迁移到 Neptune 时预调配基础设施

Amazon Neptune 集群构建为从三个维度进行扩展:存储、写入容量和读取容量。以下各节讨论了迁移时要考虑的特定选项。

预调配存储

任何 Neptune 集群的存储都是自动预调配的,您无需承担任何管理开销。随着集群的存储需求增加,它会以 10GB 的区块动态调整大小。因此,无需为应对未来的数据增长而估计和预调配或过度预调配存储。

预调配写入容量

Neptune 提供了一个写入器实例,可以将其垂直扩展到 Neptune 定价页面上提供的任何实例大小。在向写入器实例读取和写入数据时,所有事务都符合 ACID 标准,数据隔离如Neptune 中的事务隔离级别中所定义。

为写入器实例选择最佳大小要求运行负载测试,以确定工作负载的最佳实例大小。通过修改数据库实例类,可以随时调整 Neptune 中任何实例的大小。您可以根据并发和平均查询延迟来估算起始实例的大小,如下面的在预调配集群时估算最佳实例大小所述。

预调配读取容量

Neptune 构建为水平扩展只读副本实例,方法是在集群内添加最多 15 个只读副本实例(在 Neptune 全球数据库中可添加更多),也可以垂直扩展到 Neptune 定价页面上提供的任何实例大小。所有 Neptune 只读副本实例都使用相同的底层存储卷,从而以最小的滞后实现数据的透明复制。

除了在 Neptune 集群中启用读取请求的水平扩展外,只读副本还充当写入器实例的失效转移目标,以实现高可用性。有关如何确定集群中只读副本的适当数量和位置的建议,请参阅Amazon Neptune 基本操作指导

对于连接和工作负载不可预测的应用程序,Neptune 还支持自动扩缩特征,该特征可以根据您指定的标准自动调整 Neptune 副本的数量。

要确定只读副本实例的最佳大小和数量,需要运行负载测试以确定它们必须支持的读取工作负载的特性。通过修改数据库实例类,可以随时调整 Neptune 中任何实例的大小。您可以根据并发和平均查询延迟来估算起始实例的大小,如下一节所述。

使用 Neptune 无服务器根据需要自动扩展读取器和写入器实例

虽然能够估算预期工作负载所需的计算容量通常很有帮助,但您可以配置 Neptune 无服务器特征,以自动纵向扩展和缩减读取和写入容量。这可以帮助您满足峰值需求,同时还可以在需求减少时自动缩减规模。

在预调配集群时估算最佳实例大小

要估算最佳实例大小,需要知道 Neptune 中的平均查询延迟、工作负载何时运行,以及正在处理的并发查询数量。实例大小的粗略估计值可以通过将平均查询延迟乘以并发查询数来计算。这为您提供了处理工作负载所需的平均并发线程数。

Neptune 实例中的每个 vCPU 可以支持两个并发查询线程,因此将线程除以 2 即可得出所需的 vCPU 数量,然后可以将其与 Neptune 定价页面上的相应实例大小相关联。例如:

Average Query Latency: 30ms (0.03s) Number of concurrent queries: 1000/second Number of threads needed: 0.03 x 1000 = 30 threads Number of vCPUs needed: 30 / 2 = 15 vCPUs

将其与实例中的 vCPU 数量相关联,我们可以得到粗略的估计,r5.4xlarge 将是针对此工作负载尝试的推荐实例。这个估计是粗略的,仅用于为实例大小选择提供初步指导。任何应用程序都应通过调整大小操作来确定适合工作负载的适当实例数量和一种(或多种)实例类型。

还应考虑内存要求以及处理要求。当通过查询访问的数据在主内存缓冲池缓存中可用时,Neptune 的性能最高。预调配足够的内存还可以显著降低 I/O 成本。

有关在 Neptune 集群中调整实例大小的更多详细信息和指导,请访问调整 Neptune 数据库集群中数据库实例的大小页面。