

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

# 扩展 MemoryDB 集群
<a name="scaling-cluster"></a>

由于对您的集群的需求发生变化，您可能决定通过更改 MemoryDB 集群中的分片数量来提高性能或降低成本。我们建议使用在线水平扩展来实现这一目的，因为采用这种方法，您的集群在扩展过程中可以继续为请求提供服务。

您决定重新调节集群的情况包括以下几种：
+ **内存压力：**

  如果集群中的节点存在内存压力，您可能会决定进行横向扩展，以便获得更多资源来更好地存储数据并为请求提供服务。

  您可以通过监控以下指标来确定您的节点是否承受内存压力：*FreeableMemory*SwapUsage**、和 *BytesUsedForMemoryDB*。
+ **CPU 或网络瓶颈：**

  如果 latency/throughput 问题困扰着您的集群，则可能需要向外扩展以解决问题。

  您可以通过监控以下指标来监控延迟和吞吐量级别：*CPUUtilization*NetworkBytesIn**、*NetworkBytesOut*、*CurrConnections*、和*NewConnections*。
+ **您的集群过度扩展：**

  对集群的当前需求是缩减集群不会降低性能，并可以降低成本。

  您可以使用以下指标监控集群的使用情况，以确定是否可以安全地进行扩展：*FreeableMemory*SwapUsageBytesUsedForMemory***、*、*CPUUtilization*、*NetworkBytesIn*NetworkBytesOut**、*CurrConnections*、和*NewConnections*。

**扩展的性能影响**  
当使用离线过程进行扩展时，您的集群在大部分过程中处于离线状态，因此无法为请求提供服务。当使用在线方法进行扩展时，由于扩展是计算密集型操作，因此会导致一定程度的性能下降，但是在整个扩展操作过程中您的集群仍然会继续为请求提供服务。性能的降低程度取决于您的常规 CPU 利用率和数据。

有两种方法可以扩展您的 MemoryDB 集群：横向和纵向扩展。
+ 利用横向扩展，可以通过添加或移除分片来更改集群中的分片数量。在线重新分片过程允许在集群继续处理传入请求的 in/out 同时进行扩展。
+ 纵向扩展 – 更改节点类型以调整集群大小。在线垂直扩展允许在集群继续处理传入请求的 up/down 同时进行扩展。

如果要通过横向缩减或纵享缩减来减小集群的大小和内存容量，请确保新配置具有足够的内存用于数据和引擎开销。