选择节点大小
为集群选择的节点大小会影响成本、性能和容错能力。
选择 Memcached 节点大小
Memcached 集群包含一个或多个节点,该集群的数据会分区到各个节点中。因此,集群的内存需求和节点的内存相关但不相同。您可以通过拥有几个大型节点或多个小型节点来获得所需的集群内存容量。此外,由于您的需求是变化的,您可以在集群中添加节点或删除节点,从而仅为所需内容付费。
集群的总内存容量的计算方法是,在扣除系统开销后将集群中的节点数乘以每个节点的 RAM 容量。每个节点的容量都基于节点类型。
cluster_capacity = number_of_nodes * (node_capacity - system_overhead)
集群中的节点数是运行 Memcached 的集群可用性的一个关键因素。如果单一节点出现故障,则可能对应用程序的可用性以及后端数据库的负载产生影响。在这种情况下,ElastiCache 会更换出现故障的节点并对其进行重新填充。要减小这种可用性影响,请将内存和计算容量分布于更多节点上(每个节点的容量稍小),而非使用少量大容量节点。
在您希望拥有 35GB 缓存内存的情况下,可以设置以下任意配置:
-
11
cache.t2.medium
个节点,每个节点具有 3.22 GB 内存和 2 个线程,共 35.42 GB 和 22 个线程。 -
6
cache.m4.large
个节点,每个节点具有 6.42 GB 内存和 2 个线程,共 38.52 GB 和 12 个线程。 -
3
cache.r4.large
个节点,每个节点具有 12.3 GB 内存和 2 个线程,共 36.90 GB 和 6 个线程。 -
3
cache.m4.xlarge
个节点,每个节点具有 14.28 GB 内存和 4 个线程,共 42.84 GB 和 12 个线程。
比较节点选项 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
节点类型 | 内存(单位:GiB) | 核心 | 小时成本* | 需要的节点 | 总内存(单位:GiB) | 核心总数 | 月度成本 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cache.t2.medium | 3.22 | 2 | 0.068 美元 | 11 | 35.42 | 22 | 538.56 美元 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cache.m4.large | 6.42 | 2 | 0.156 美元 | 6 | 38.52 | 12 | 673.92 美元 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cache.m4.xlarge | 14.28 | 4 | 0.311 美元 | 3 | 42.84 | 12 | 671.76 美元 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cache.m5.xlarge | 12.93 | 4 | 0.311 美元 | 3 | 38.81 | 12 | 671.76 美元 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cache.m6g.large | 6.85 | 2 | 0.147 美元 | 6 | 41.1 | 12 | 635 美元 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cache.r4.large | 12.3 | 2 | 0.228 美元 | 3 | 36.9 | 6 | 492.48 美元 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cache.r5.large | 13.07 | 2 | 0.216 美元 | 3 | 39.22 | 6 | 466.56 美元 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cache.r6g.large | 13.07 | 2 | 0.205 美元 | 3 | 42.12 | 6 | 442 美元 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* 自 2020 年 10 月 8 日起的每节点小时成本。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
30 天(720 小时)的 100% 使用量的月度成本。 |
这些选项都提供了类似的内存容量,但提供了不同的计算容量和成本。要比较特定选项的成本,请参阅 Amazon ElastiCache 定价
对于运行 Memcached 的集群,每个节点上的部分可用内存都会用于连接开销。有关更多信息,请参阅 Memcached 连接开销
使用多个节点需要跨这些节点分布密钥。每个节点都有自己的终端节点。为了便于管理端点,您可以使用 ElastiCache(Auto Discovery 功能)以使客户端程序能够自动标识集群中的所有节点。有关更多信息,请参阅自动识别集群中的节点。
在某些情况下,您可能无法确定您需要多少容量。如果是这样,对于测试,我们建议从 cache.m5.large
节点开始。然后,使用发布到 Amazon CloudWatch 的 ElastiCache 指标监控内存使用率、CPU 利用率和缓存命中率。有关 ElastiCache 的 CloudWatch 指标的更多信息,请参阅 使用 CloudWatch 指标监控使用情况。对于生产和大型工作负载,R5 节点提供了最佳性能和 RAM 成本价值。
如果您的集群没有所需的命中率,您可以轻松地添加更多的节点,从而增加您的集群的可用内存总量。
如果集群受到 CPU 的约束,但具有足够的命中率,请使用提供更强计算能力的节点类型来设置新集群。