Amazon ElastiCache
用户指南 (API Version 2015-02-02)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

Memcached 特定的参数

如果您没有为 Memcached 集群指定参数组,则将使用默认的参数组 (default.memcached1.4)。您不能在默认参数组中更改任何参数的值;但是,您始终可以创建自定义参数组,然后随时将其分配给您的集群。

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。

cache_memlimit

类型:整数

可修改:是

更改生效:立即

如果未预先分配内存,则允许对正在运行的系统动态增长内存限制。cache_memlimit N,其中 N 是以 MB 为单位的值。值可以增加或减少。

范围:8 (MB) 到节点类型的 maxmemory

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)

类型:布尔值

可修改:

更改生效:否

如果为 If 1 (true),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 (MiB) num-threads
cache.t1.micro 213 1
cache.t2.micro 555 1
cache.t2.small 1588 1
cache.t2.medium 3301 2
cache.m1.small 1300 1
cache.m1.medium 3350 1
cache.m1.large 7100 2
cache.m1.xlarge 14600 4
cache.m2.xlarge 16700 2
cache.m2.2xlarge 33800 4
cache.m2.4xlarge 68000 8
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 14618 4
cache.m4.2xlarge 30412 8
cache.m4.4xlarge 62234 16
cache.m4.10xlarge 158355 40
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 242600 32