更新时间:2024-06-17 GMT+08:00
分享

修改DCS实例配置参数

为了确保分布式缓存服务发挥出最优性能,您可以根据自己的业务情况对DCS缓存实例的运行参数进行调整。

例如,需要将实例持久化功能关闭,则需要将“appendonly”修改为“no”。

实例配置参数修改之后,参数会立即生效(不需要手动重启实例),如果是集群,会在所有分片生效。

修改单实例配置参数

  1. 登录分布式缓存服务管理控制台
  2. 在管理控制台左上角单击,选择实例所在的区域。
  3. 单击左侧菜单栏的“缓存管理”。
  4. 在“缓存管理”页面,单击DCS缓存实例的名称。
  5. 单击“实例配置 > 参数配置”进入配置界面。
  6. 单击“修改”。
  7. 根据需要修改配置参数。

    各参数的详细介绍见缓存实例配置参数说明,一般情况下,按照系统默认值设置参数即可。

  8. 单击“保存”。
  9. 在弹出的修改确认对话框中,单击“是”,确认修改参数。

批量修改实例配置参数

  1. 登录分布式缓存服务管理控制台
  2. 在管理控制台左上角单击,选择实例所在的区域。
  3. 单击左侧菜单栏的“缓存管理”。
  4. 在“缓存管理”页面,选中所有需要修改的DCS缓存实例的名称。
  5. 选择“更多 > 批量修改参数”,进入批量修改参数页面。

    • 批量修改参数页面中的“请选择要修改的参数”为所选实例的参数并集。例如所选实例1的“appendfsync”参数在所选实例2中不存在,也可以选择该参数,但在7中会提示实例2“不支持此参数”,提交后修改命令不会下发到实例2。批量修改参数页面中的“参数范围”为所选实例的该参数的取值范围交集。例如所选实例1的“maxclients”参数的取值范围为0-50000,所选实例2该参数的取值范围为1000-50000,则该页面中显示的“参数范围”即为1000-50000。
    • 在批量修改页面,也可以通过单击实例名称后的取消某个实例,不再对该实例进行参数修改。

  6. 选择需要修改的配置参数,在对应的“修改后运行值”列输入修改值。

    各参数的详细介绍见缓存实例配置参数说明,一般情况下,按照系统默认值设置参数即可。

  7. 单击“下一步:核对参数”,确认需要修改的缓存实例及参数值。

    • 在确认页面,可通过缓存类型、实例类型、状态筛选条件,筛选出4中符合条件的缓存实例,对其进行配置参数修改。
    • 可以在取值范围内对不同的实例设置不同的值。如果某实例该参数修改前的值与本次修改的值相同,则该实例不会产生修改记录。

  8. 单击“提交”。
  9. 单击缓存实例名称,进入缓存实例概览页面,选择“配置参数 > 修改记录”查看修改的配置参数是否成功。

缓存实例配置参数说明

表1 Redis缓存实例配置参数说明

参数名

参数解释

取值范围

默认值

active-expire-num

过期键定期删除时随机检查key的数量。

Redis 3.0和Redis 6.0企业版实例不支持该参数。

说明:

该参数为2021年9月新增,在此之前创建的实例,如果无法正常修改参数值,请联系技术支持处理。

1~1,000

20

timeout

客户端与服务端连接空闲超时断开时间,参数设为0表示连接永不断开。

Proxy集群实例不支持该参数。

0~7200,单位:秒。

0

appendfsync

操作系统的fsync函数刷新缓冲区数据到磁盘,有些操作系统会真正刷新磁盘上的数据,其他一些操作系统只会尝试尽快完成。单机实例不支持该参数。

Redis支持三种不同的调用fsync的方式:

no:不调用fsync,由操作系统决定何时刷新数据到磁盘,性能最高。

always:每次写AOF文件都调用fsync,性能最差,但数据最安全。

everysec:每秒调用一次fsync。兼具数据安全和性能。

  • no
  • always
  • everysec

no

appendonly

指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。单机实例不支持该参数。

有如下取值供选择:

yes:开启日志记录,即开启持久化功能。

no:关闭日志记录,即关闭持久化功能。

only-replica:仅开启从节点持久化功能。

说明:

目前appendonly参数默认只有yes和no两个配置项,如果是Redis 4.0/5.0/6.0基础版主备或集群实例,或企业版高性能型主备实例,联系运维人员放通该参数的白名单后,会显示only-replica配置项。

  • yes
  • no
  • only-replica

yes

client-output-buffer-limit-slave-soft-seconds

主从同步缓冲区大小软限制持续秒数。

0~60

60

client-output-buffer-slave-hard-limit

主从同步缓冲区大小硬限制,单位字节。如果同步缓冲区大小超过这个值,则主从同步连接立即断开。

0~17,179,869,184

1,717,986,918

client-output-buffer-slave-soft-limit

主从同步缓冲区大小软限制,单位字节。如果同步缓冲区大小超过这个值达到client-output-buffer-limit-slave-soft-seconds参数配置的秒数,则主从同步连接断开。

0~17,179,869,184

1,717,986,918

maxmemory-policy

内存使用达到上限时,对缓存数据的逐出策略。有8个取值供选择:

  • volatile-lru:根据LRU算法删除设置了过期时间的键值。
  • allkeys-lru:根据LRU算法删除任一键值。
  • volatile-random:删除设置了过期时间的随机键值。
  • allkeys-random:删除一个随机键值。
  • volatile-ttl:删除即将过期的键值,即TTL值最小的键值。
  • noeviction:不删除任何键值,只是返回一个写错误。
  • volatile-lfu: 根据LFU算法删除设置了过期时间的键值。
  • allkeys-lfu: 根据LFU算法删除任一键值。

详情可参考Redis官网的逐出策略

  • volatile-lru
  • allkeys-lru
  • volatile-random
  • allkeys-random
  • volatile-ttl
  • noeviction
  • volatile-lfu
  • allkeys-lfu

volatile-lru

说明:

如果是2020年7月之前创建的Redis实例,且没有修改过该参数,则默认值为noeviction。如果是2020年7月之后创建的实例,默认值都为volatile-lru。

lua-time-limit

Lua脚本的最长执行时间,单位为毫秒。

100~5,000

5,000

master-read-only

设置实例为只读状态。设置只读后,所有写入命令将返回失败。

Proxy集群实例不支持该参数。

  • yes
  • no

no

maxclients

最大同时连接的客户端个数。

该参数为单节点(单分片)连接数上限:

  • 集群实例单节点连接数上限=实例连接数上限/分片数。
  • 单机/主备/读写分离实例,单节点连接数上限=实例最大连接数。

1,000~50,000

10,000

proto-max-bulk-len

Redis协议中的最大的请求大小,单位为字节。

1,048,576~536,870,912

536,870,912

repl-backlog-size

用于增量同步的复制积压缓冲区大小(单位为字节)。这是一个用来在从节点断开连接时,存放从节点数据的缓冲区,当从节点重新连接时,如果丢失的数据少于缓冲区的大小,可以用缓冲区中的数据开始增量同步。

16,384~1,073,741,824

1,048,576

repl-backlog-ttl

从节点断开后,主节点释放复制积压缓冲区内存的秒数。值为0时表示永不释放复制积压缓冲区内存。

0~604,800

3,600

repl-timeout

主从同步超时时间,单位为秒。

30~3,600

60

hash-max-ziplist-entries

当hash表中记录数少于参数值,使用ziplist编码格式,节约内存。

1~10000

512

hash-max-ziplist-value

当hash表中各字段长度的最大值小于参数值时,使用ziplist编码格式,节约内存。

1~10000

64

set-max-intset-entries

当一个集合仅包含字符串且整型元素数量少于参数值时,使用intset编码格式,节约内存。

1~10000

512

zset-max-ziplist-entries

当有序集合中记录数少于参数值,使用ziplist编码格式,节约内存。

1~10000

128

zset-max-ziplist-value

当有序集合中各字段长度的最大值小于参数值时,使用ziplist编码格式,节约内存。

1~10000

64

latency-monitor-threshold

延时监控的采样时间阈值(最小值)。

当阈值设置为0时,不做监控,也不采样;当阈值设置为大于0时,将监控并记录执行耗时大于阈值的操作。

您可以通过LATENCY等命令获取统计数据和配置、执行采样监控。

Proxy集群实例不支持该参数。

0~86400000,单位:毫秒。

0

notify-keyspace-events

键空间通知,配置该参数后客户端可以通过Redis的订阅与发布功能,来接收那些以某种方式改动了Redis数据集的事件。

Proxy集群实例不支持该参数。

可配置为以下字符的任意组合,指定了服务器该发送哪些类型的通知:

K:键空间通知,所有通知以__keyspace@*__为前缀。

E:键事件通知,所有通知以__keyevent@*__为前缀。

g:DEL、EXPIRE、RENAME等类型无关的通用命令的通知。

$:字符串命令的通知。

l:列表命令的通知。

s:集合命令的通知。

h:哈希命令的通知。

z:有序集合命令的通知。

x:过期事件:每当有过期键被删除时发送。

e:驱逐(evict)事件:每当有键因为maxmemory政策而被删除时发送。

其他描述,请参考表格下方的说明。

Ex

slowlog-log-slower-than

redis慢查询会记录超过指定执行时间的命令。slowlog-log-slower-than用于配置记录到慢查询的命令执行时间阈值,其以微秒为单位。

0~1,000,000

10,000

slowlog-max-len

慢查询记录的条数。注意慢查询记录会消耗额外的内存。可以通过执行SLOWLOG RESET命令清除慢查询记录。

0~1,000

128

auto-kill-timeout-lua-process

yes:开启。

no:关闭。

开启该参数时,执行超时的lua脚本进程会被自动kill。如果lua脚本执行了写操作无法kill,并且实例开启了持久化时,则该lua脚本所在的节点会自动重启,lua脚本执行的写操作将不被保存。

单机实例和Redis 3.0实例不支持该参数。

  • yes
  • no

no

audit-log-customer-command-list

审计日志需要额外记录的命令。审计日志默认只记录写命令,该参数可以指定用户额外需要记录的命令。只有在开启了审计日志的情况下才有效。

说明:

审计日志目前为白名单特性,只有开启了审计日志白名单的用户,且实例类型为Redis 4.0/5.0 Proxy集群实例时,才显示该参数。

该参数配置的值必须由英文字母或与.-_组成的命令,且必须以英文字母开头和结尾,每个命令最大长度为10,最多支持配置10个命令。命令之间用空格隔开, 配置的内容最后必须以空格结尾。

-

  1. 表1中的内存优化相关参数可以参考Redis官网说明,链接:https://redis.io/topics/memory-optimization
  2. latency-monitor-threshold参数一般在定位问题时使用。采集完latency信息,定位问题后,建议重新将latency-monitor-threshold设置为0,以免引起不必要的延迟。
  3. notify-keyspace-events参数的其他描述:
    • 有效值为[K|E|KE][A|g|l|s|h|z|x|e|$],即输入的参数中至少要有一个K或者E。
    • A为“g$lshzxe”所有参数的集合别名。A与“g$lshzxe”中任意一个不能同时出现。
    • 例如,如果只想订阅键空间中和列表相关的通知,那么参数就应该设为Kl。若将参数设为字符串"AKE"表示发送所有类型的通知。
  4. 不同实例类型支持配置的参数和取值可能略有不同,请以控制台显示为准。
表2 Memcached缓存实例配置参数说明

参数名

参数解释

取值范围

默认值

timeout

客户端与服务端连接空闲超时断开时间,参数设为0表示连接永不断开。

0~7200,单位:秒。

0

maxclients

最大同时连接的客户端个数。

1,000~10,000

10,000

maxmemory-policy

内存使用达到上限时对缓存数据管理策略。

  • volatile-lru:根据LRU算法删除设置了过期时间的键值。
  • allkeys-lru:根据LRU算法删除任一键值。
  • volatile-random:删除设置了过期时间的随机键值。
  • allkeys-random:删除一个随机键值。
  • volatile-ttl:删除即将过期的键值,即TTL值最小的键值。
  • noeviction:不删除任何键值,只是返回一个写错误。

volatile-lru

allkeys-lru

volatile-random

allkeys-random

volatile-ttl

noeviction

noeviction

reserved-memory-percent

预留给后台进程用于持久化、主从同步等内部处理的内存百分比(相对于最大可用内存的百分比)。

0-80

30

分享:

    相关文档

    相关产品