Memcached 特定的参数 - Amazon ElastiCache
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Memcached 特定的参数

如果您没有为 Memcached 集群指定参数组,则将使用适合您引擎版本的默认参数组。您无法更改默认参数组中的任何参数的值。但是,您可以随时创建自定义参数组并将其分配给集群。有关更多信息,请参阅创建参数组

Memcached 1.6.17 更改

从 Memcached 1.6.17 开始,我们不再支持以下管理命令:lru_crawlerlruslabs。鉴于这些更改,您将无法在运行时系统中通过命令启用/禁用 lru_crawler。请通过修改您的自定义参数组来启用/禁用 lru_crawler

Memcached 1.6.6 增加的参数

对于 Memcached 1.6.6,不支持任何附加参数。

参数组系列:memcached1.6

Memcached 1.5.10 参数更改

对于 Memcached 1.5.10,支持以下附加参数。

参数组系列:memcached1.5

名称 详细信息 描述
no_modern

默认值:1

类型:布尔值

可修改:是

允许的值:0,1

更改生效:启动时

用于禁用 slab_reassignslab_automovelru_crawlerlru_maintainermaxconns_fast 命令的别名。No modern 还将 hash_algorithm 设置为 jenkins,并允许内联 ASCII VALUE。适用于 memcached 1.5 版和更高版本。要还原到 modern,您必须禁用此参数然后重新启动,这将自动启用 slab_reassignslab_automovelru_crawlerlru_maintainermaxconns_fast

注意

自 2021 年 8 月 20 日起,此参数的原定设置配置值已从 0 改为 1。2021 年 8 月 20 日之后,每个区域的新 ElastiCache 用户将自动获取更新的原定设置值。2021 年 8 月 20 日之前,各区域的现有 ElastiCache 用户需要手动修改其自定义参数组才能应用此新更改。

inline_ascii_resp

默认值:0

类型:布尔值

可修改:是

允许的值:0,1

更改生效:启动时

存储项中的 VALUE 响应的数字,最多使用 24 个字节。ASCII getfaster 集的速度较慢。

对于 Memcached 1.5.10,删除了以下参数。

名称 详细信息 描述
expirezero_does_not_evict

默认值:0

类型:布尔值

可修改:是

允许的值:0,1

更改生效:启动时

在此版本中不再受支持。

modern

默认值:1

类型:布尔值

可修改:是(如果设置为 no_modern,则需要重新启动)

允许的值:0,1

更改生效:启动时

在此版本中不再受支持。从此版本开始,默认情况下,每次启动或重新启动时都会启用 no-modern

Memcached 1.4.34 增加的参数

对于 Memcached 1.4.34,不支持任何附加参数。

参数组系列: memcached1.4

Memcached 1.4.33 增加的参数

对于 Memcached 1.4.33,支持以下附加参数。

参数组系列: memcached1.4

名称 详细信息 描述
modern

默认值:启用

类型:布尔值

可修改:是

更改生效:启动时

访问多项功能的别名。启用 modern 等同于启用以下命令并使用 murmur3 哈希算法:slab_reassignslab_automovelru_crawlerlru_maintainermaxconns_fasthash_algorithm=murmur3

watch

默认值:启用

类型:布尔值

可修改:是

更改生效:立即

在用户达到其 watcher_logbuf_sizeworker_logbuf_size 限制时可以删除日志。

日志提取、移出或更改。例如,在用户启用 watch 时,出现 getsetdeleteupdate 的情况下可以查看日志。

idle_timeout

默认值:0(禁用)

类型:整数

可修改:是

更改生效:启动时

在要求关闭客户端之前,允许客户端保持空闲的最短秒数。取值范围:0 到 86400。

track_sizes

默认值:禁用

类型:布尔值

可修改:是

更改生效:启动时

显示每个 slab 组已用的大小。

启用 track_sizes 可让您运行 stats sizes 而无需运行 stats sizes_enable

watcher_logbuf_size

默认值:256 (KB)

类型:整数

可修改:是

更改生效:启动时

watch 命令启用 Memcached 的流日志记录。但是,在移出、更改或提取速率足够高而导致了日志记录缓冲区满填满时,watch 可以删除日志。在这些情况下,用户可以增加缓冲区大小以减少日志丢失的可能性。

worker_logbuf_size

默认值:64 (KB)

类型:整数

可修改:是

更改生效:启动时

watch 命令启用 Memcached 的流日志记录。但是,在移出、更改或提取速率足够高而导致了日志记录缓冲区满填满时,watch 可以删除日志。在这些情况下,用户可以增加缓冲区大小以减少日志丢失的可能性。

slab_chunk_max

默认值:524288 (字节)

类型:整数

可修改:是

更改生效:启动时

指定 slab 的最大大小。设置较小的 slab 大小可以更有效地使用内存。大于 slab_chunk_max 的项目将拆分为多个 slab。

lru_crawler metadump [all|1|2|3]

默认值:禁用

类型:布尔值

可修改:是

更改生效:立即

如果启用了 lru_crawler,则此命令会转储所有键。

all|1|2|3 - 所有 slab,或者指定特定 slab 编号

Memcached 1.4.24 增加的参数

对于 Memcached 1.4.24,支持以下附加参数。

参数组系列: memcached1.4

名称 详细信息 描述
disable_flush_all

默认值:0(禁用)

类型:布尔值

可修改:是

更改生效:启动时

添加参数 (-F) 以禁用 flush_all。如果您再也不想在生产实例上运行完全刷新,则这样做会很有用。

值:0,1(当值为 0 时,用户可以执行 flush_all)。

hash_algorithm

默认值:jenkins

类型:字符串

可修改:是

更改生效:启动时

要使用的哈希算法。允许的值:murmur3 和 jenkins。
lru_crawler

默认值:0(禁用)

类型:布尔值

可修改:是

更改生效:重新启动后

注意

您可在运行时通过命令行临时启用 lru_crawler。有关更多信息,请参阅“描述”列。

清除已过期的项目的 Slab 类。此过程在后台运行,并且产生的影响很小。目前要求使用手动命令来启用网络爬取。

要临时启用网络爬取,请在命令行处运行 lru_crawler enable

lru_crawler 1,3,5 对 Slab 类 1、3 和 5 进行网络爬取,以查找要添加到空闲列表的过期项目。

值:0,1

注意

在命令行处启用 lru_crawler 将启用爬网程序,直到在命令行处或下次重启时将其禁用。要永久性启用爬网程序,您必须修改参数值。有关更多信息,请参阅修改参数组

lru_maintainer

默认值:0(禁用)

类型:布尔值

可修改:是

更改生效:启动时

当达到容量时对 LRU 之间的项目进行随机处理的后台线程。值:0,1。

expirezero_does_not_evict

默认值:0(禁用)

类型:布尔值

可修改:是

更改生效:启动时

在与 lru_maintainer 一起使用时,使过期时间为 0 的项目不可收回。

警告

这可以挤出内存以供其他可收回项目使用。

可以设置为忽略 lru_maintainer

Memcached 1.4.14 增加的参数

对于 Memcached 1.4.14,支持以下附加参数。

参数组系列: memcached1.4

Memcached 1.4.14 中添加的参数
名称 详细信息 描述
config_max

默认值:16

类型:整数

可修改:否

ElastiCache 配置条目的最大数量。
config_size_max

默认值:65536

类型:整数

可修改:否

配置条目的最大大小(单位:字节)。
hashpower_init

默认值:16

类型:整数

可修改:否

ElastiCache 哈希表的初始大小(以二次幂表示)。默认值为 16 (2^16) 或 65536 长度的密钥。
maxconns_fast

默认值:0 (false)

类型:布尔值

可修改:是

更改生效:重新启动后

在达到最大连接限制时,请更改处理新连接请求的方式。如果将此参数设为 0(即零),新连接将被添加至缓冲区队列,并将等待直到其他连接已关闭。如果将参数设为 1,ElastiCache 将会发送一个错误到客户端,并且立即关闭连接。
slab_automove

默认值:0

类型:整数

可修改:是

更改生效:重新启动后

调整 Slab 自动移动算法:如果将此参数设为 0(即零),自动移动算法将禁用。如果将参数设为 1,ElastiCache 会采用一种缓慢而保守的方法来自动移动 Slab。如果将参数设为 2,ElastiCache 会在出现移出情况时积极地移动 Slab。(建议不要使用此模式,测试用途除外)。
slab_reassign

默认值:0 (false)

类型:布尔值

可修改:是

更改生效:重新启动后

启用或禁用 Slab 重新分配。如果将此参数设为 1,您可以使用“Slab 重新分配”命令来手动重新分配内存。

Memcached 1.4.5 支持的参数

参数组系列: memcached1.4

对于 Memcached 1.4.5,支持以下参数。

Memcached 1.4.5 中添加的参数
名称 详细信息 描述
backlog_queue_limit

默认值:1024

类型:整数

可修改:否

积压队列限制。
binding_protocol

默认值:auto

类型:字符串

可修改:是

更改生效:重新启动后

绑定协议。

允许的值为:asciiauto

有关修改 binding_protocol 的值的指南,请参阅修改参数组

cas_disabled

默认值:0 (false)

类型:布尔值

可修改:是

更改生效:重新启动后

如果为 1 (true),则检查和设置 (CAS) 操作将禁用,存储的项目消耗的字节将比启用 CAS 时消耗的字节少 8 字节。
chunk_size

默认值:48

类型:整数

可修改:是

更改生效:重新启动后

为最小项目的密钥、值和标志分配的最小空间量(以字节为单位)。
chunk_size_growth_factor

默认值:1.25

类型:浮点数

可修改:是

更改生效:重新启动后

控制各个连续 Memcached 区块的大小的增长系数;每个区块将比前一个区块大 chunk_size_growth_factor 倍。
error_on_memory_exhausted

默认值:0 (false)

类型:布尔值

可修改:是

更改生效:重新启动后

如果 1(为真),当没有更多的内存用于存储项目时,Memcached 将返回一个错误,而非移出项目。
large_memory_pages

默认值:0 (false)

类型:布尔值

可修改:否

如果 1(为真),ElastiCache 会试图使用大内存页。
lock_down_paged_memory

默认值:0 (false)

类型:布尔值

可修改:否

如果 1(为真),ElastiCache 会锁定所有分页内存。
max_item_size

默认值:1048576

类型:整数

可修改:是

更改生效:重新启动后

可以存储在集群中的最大项目的大小(单位:字节)。
max_simultaneous_connections

默认值:65000

类型:整数

可修改:否

最大同时连接数。
maximize_core_file_limit

默认值:0 (false)

类型:布尔值

可修改:

更改生效:重新启动后

如果 1(为真),ElastiCache 会最大限度地提高核心文件限制。
memcached_connections_overhead

默认值:100

类型:整数

可修改:是

更改生效:重新启动后

为 Memcached 连接和其他杂项开支预留的内存量。有关此参数的信息,请参阅Memcached 连接开销
requests_per_event

默认值:20

类型:整数

可修改:否

每个事件请求获取给定连接的最大数量。此限制需要防止资源匮乏。

Memcached 连接开销

每个节点上可用于存储项目的内存计算方式为:此节点上的总可用内存(存储于 max_cache_memory 参数中)减去连接和其他开支所占用的内存(存储于 memcached_connections_overhead 参数中)。例如,cache.m1.small 类型的节点的 max_cache_memory 为 1300MB。memcached_connections_overhead 的默认值为 100MB,Memcached 进程可用于存储项目的内存则为 1200MB。

memcached_connections_overhead 参数的默认值满足大多数用例;然而,分配给连接开支的必需量会因多种因素(包括请求率、有效负载大小和连接数)而异。

您可以更改 memcached_connections_overhead 的值,以更好地满足您的应用程序的需求。例如,增大 memcached_connections_overhead 参数的值将减少用于存储项目的内存量,并为连接开销提供更大的缓冲区。减小 memcached_connections_overhead 参数的值将为您提供更多的内存来存储项目,但可能会增加使用交换分区和性能下降的风险。如果您发现交换分区使用情况和性能降低,请尝试增加 memcached_connections_overhead 参数的值。

重要

对于 cache.t1.micro 节点类型,memcached_connections_overhead 的值是通过以下方式决定:

  • 如果您的集群使用的是默认参数组,那么 ElastiCache 会将 memcached_connections_overhead 的值设置为 13MB。

  • 如果您的集群使用的是您自己创建的参数组,那么您可以将 memcached_connections_overhead 的值设置为您选定的值。

特定于 Memcached 节点类型的参数

虽然大多数参数具有单个值,但是某些参数根据使用的节点类型具有不同的值。下表显示了每种节点类型的 max_cache_memorynum_threads 参数的默认值。无法修改这些参数的值。

节点类型 max_cache_memory(单位:MB) num_threads
cache.t1.micro 213 1
cache.t2.micro 555 1
cache.t2.small 1588 1
cache.t2.medium 3301 2
cache.t3.micro 512 2
cache.t3.small 1402 2
cache.t3.medium 3364 2
cache.t4g.micro 512 2
cache.t4g.small 1402 2
cache.t4g.medium 3164 2
cache.m1.small 1301 1
cache.m1.medium 3350 1
cache.m1.large 7100 2
cache.m1.xlarge 14600 4
cache.m2.xlarge 33800 2
cache.m2.2xlarge 30412 4
cache.m2.4xlarge 68000 16
cache.m3.medium 2850 1
cache.m3.large 6200 2
cache.m3.xlarge 13600 4
cache.m3.2xlarge 28600 8
cache.m4.large 6573 2
cache.m4.xlarge 11496 4
cache.m4.2xlarge 30412 8
cache.m4.4xlarge 62234 16
cache.m4.10xlarge 158355 40
cache.m5.large 6537 2
cache.m5.xlarge 13248 4
cache.m5.2xlarge 26671 8
cache.m5.4xlarge 53516 16
cache.m5.12xlarge 160900 48
cache.m5.24xlarge 321865 96
cache.m6g.large 6537 2
cache.m6g.xlarge 13248 4
cache.m6g.2xlarge 26671 8
cache.m6g.4xlarge 53516 16
cache.m6g.8xlarge 107000 32
cache.m6g.12xlarge 160900 48
cache.m6g.16xlarge 214577 64
cache.c1.xlarge 6600 8
cache.r3.large 13800 2
cache.r3.xlarge 29100 4
cache.r3.2xlarge 59600 8
cache.r3.4xlarge 120600 16
cache.r3.8xlarge 120600 32
cache.r4.large 12590 2
cache.r4.xlarge 25652 4
cache.r4.2xlarge 51686 8
cache.r4.4xlarge 103815 16
cache.r4.8xlarge 208144 32
cache.r4.16xlarge 416776 64
cache.r5.large 13387 2
cache.r5.xlarge 26953 4
cache.r5.2xlarge 54084 8
cache.r5.4xlarge 108347 16
cache.r5.12xlarge 325400 48
cache.r5.24xlarge 650869 96
cache.r6g.large 13387 2
cache.r6g.xlarge 26953 4
cache.r6g.2xlarge 54084 8
cache.r6g.4xlarge 108347 16
cache.r6g.8xlarge 214577 32
cache.r6g.12xlarge 325400 48
cache.r6g.16xlarge 429154 64
cache.c7gn.large 3164 2
cache.c7gn.xlarge 6537 4
cache.c7gn.2xlarge 13248 8
cache.c7gn.4xlarge 26671 16
cache.c7gn.8xlarge 53516 32
cache.c7gn.12xlarge 325400 48
cache.c7gn.16xlarge 108347 64
注意

所有 T2 实例都是在 Amazon Virtual Private Cloud (Amazon VPC) 中创建的。