Memcached 配置

此页面提供了 Memorystore for Memcached 的可修改和不可修改的 Memcached 配置参数列表,以及这些参数的默认值。

可修改的配置参数

您可以在为 Memcached 实例创建或更新 Memorystore 时修改以下参数。要更新参数,您需要通过两个单独的步骤更改和应用参数。如需详细了解如何更改这些配置,请参阅配置 Memcached 实例

参数 可接受的值 默认值 说明
listen-backlog (-b) 1-10000 1024 连接积压输入量队列的可调整长度。积压输入量是指排队等待 Memcached 处理的网络连接请求数。
disable-flush-all (-F) true、false false disable-flush-all 设置为 true 会停用开源 Memcached flush-all 命令。修改此配置会递增 cmd_flush 计数器的值,但实际上并不会发生清空。
max-item-size (-I) 524288-134217728(字节) 1048576 Memcached 参数 max-item-size 设置实例中存储的项的大小上限。它受到一些其他限制条件的约束:
  • max-item-size 必须大于或等于 slab_chunk_max。slab_chunk_max 设置为 524288 字节 (512 KiB),Memorystore for Memcached 不支持更改此值。因此,max-item-size 的最小值为 524288 字节,而不是开源 Memcached 支持的最小值(1024 字节)。
  • max-item-size 必须可被 slab_chunk_max(524288 字节)整除。
  • max-item-size不得超过缓存的总分配大小的一半(-m 标志)。
slab-min-size (-n) 1-1024(字节) 48 设置最小项大小和最小 Memcached slab 的大小。
slab-growth-factor (-f) 1.01-100.00 1.25 slab-growth-factor 是用于计算 Memcached 数据块/Slab 的大小的乘数。降低此值可以提高内存使用效率,但具体取决于要存储的内容大小以及实例的可用内存。
protocol (-B) auto, ascii 自动 绑定协议。指定尝试连接到服务器的客户端必须使用的协议。“自动”支持二进制协议和 ascii 协议。
disable-cas (-C) true、false false 如果 disable-cas 设置为 true,则检查并设置 (CAS) 操作被停用。停用 CAS 操作会为缓存中的每一项减少 8 个字节。如果自上次检索以来未更新项的数据,则 Memcached 会使用 CAS 操作来刷新数据。
disable-evictions (-M) true、false false 如果设为 true,则在内存不足时,Memcached 会返回错误,而不是逐出内容。有内存可用后,实例才会接受写入。
max-reqs-per-event (-R) 1-1000 人 20 限制单个客户端连接可以为每个事件发出的请求数。在客户端超出此值后,服务器会优先处理其他客户端,然后再继续处理原始客户端请求。
预留内存百分比 0.0-50.0 10.0 将实例的预留内存设置为指定百分比,以增加可用于内存开销的空间量。此设置还会将缓存内存减少相同的百分比。2021 年 10 月 25 日之前创建的实例默认值为 0。如需了解详情,请参阅内存管理最佳实践

支持的扩展选项

参数 可接受的值 默认值 说明
track_sizes true、false false(已停用) 如果 track-sizes 设置为 true,则用户可以运行 Memcached stats sizes 命令。我们不建议在生产环境中启用此配置。
watcher_logbuf_size 0-2097151(千比字节) 262144 连接的每个活跃观察器的写入缓冲区大小。更改此配置会调整 watch 命令的日志记录缓冲区大小。为避免丢失日志,请在缓存区已满时增大 watcher_logbuf_size
worker_logbuf_size 48-524288(千比字节) 65536 控制每个活动工作器的缓冲区大小。后台线程从这些缓冲区中读取数据。
lru_crawler true、false true(已启用) lru_crawler 配置可让后台进程通过 Slab 进行扫描,并从这些 Slab 中移除最近用过的 (lru) 项。此进程不需要占用大量 CPU 或内存。由于已启用,因此该进程将在启动时运行,直到您将 lru_crawler 设置为 false
hashpower 13-32 16 哈希表初始大小的整数乘数。随着哈希值的增大而增大。
idle_timeout 0-86400 秒 0(已停用) 默认设置为 0(已停用)。此配置设置客户端在超时和断开连接之前可以处于空闲状态的时间(以秒为单位)。
lru_maintainer true、false true(已启用) 默认处于启用状态。 lru_maintainer 是一个后台进程,用于确定项的最近访问时间,以便按“最近使用时间”(lru) 对所有的项进行正确排序。
maxconns_fast true、false false(已停用) 管理在达到最大客户端数时 Memcached 处理新连接的方式。当 maxconns-fast 设置为 false 时,超出连接数上限的连接会被添加到队列中。当 maxconns-fast 设置为 true 时,超出连接数上限的连接会被丢弃,并显示错误消息。
hash_algorithm jenkins, murmur3 murmur3 指定实例使用的哈希算法。

不可修改的配置参数

下表列出了您无法使用 Memorystore for Memcached 修改的 Memcached 配置参数,以及这些参数的默认值。如需了解详情,请参阅原生 Memcached 配置参数列表。

参数 默认值
port (-p) 11211
memory-limit (-m) Memorystore 将此值设置为与实例节点配置中每个节点配置的内存相匹配。此配置不可修改:但是,您可以使用上面列出的预留内存配置来添加预留内存。
threads (-t) Memorystore 将此值设置为与每个实例节点的 CPU 数量相匹配。
conn-limit (-c) 每个节点 65000
verbose (-v)
slab_automove true(已启用)
slab_reassign true(已启用)
enable-largepages (-L) false(已停用)
lock-memory (-k) false(已停用)
expirezero-does-not-evict 不受支持。Memcached 1.4.35 中已弃用。
slab_chunk_max 524288 字节
新型 true(已启用)

后续步骤