开启dynamic-hz(动态hz)功能后,云数据库 Tair(兼容 Redis)实例会根据当前的连接数自动调整hz值(定期任务的执行频率),可规避因每次定期任务扫描的连接数过多而造成的实例卡顿。
背景信息
hz参数用于指定定期任务的执行频率,这些任务包括关闭超时的客户端连接、主动清除过期Key等,更多信息请参见调整定期任务的执行频率。
在处理客户端连接任务时,每个定期任务会扫描clients/hz
个连接。随着实例连接数的增长,单次任务所扫描的连接数也会相应增长,若单次任务扫描的连接数过多,可能会导致实例卡顿,影响运行的稳定性。
为了避免该问题,Redis社区从5.0开始引入了dynamic-hz功能,可根据当前的连接数自动调整hz值,防止每次任务扫描的连接数(clients/hz
)过多造成实例卡顿。
dynamic-hz的取值为yes
(开启,默认值)和no
。当开启dynamic-hz时,您原本设置hz值将作为基线值(configured_hz),而实例实际hz值会在基线值的基础上根据已连接到实例的客户端数量自动调整。连接的客户端越多,实际hz值越高,实例执行定期任务的频率就越高,此时也会加快其他定期任务的执行频率,例如主动清除过期Key等。
您可以通过INFO命令获取基线值和动态调整后实际的hz值。
前提条件
实例的版本为兼容Redis 5.0或以上。
操作步骤
访问实例列表,在上方选择地域,然后单击目标实例ID。
在左侧导航栏中,单击参数设置。
在参数列表中,单击dynamic-hz右侧操作列的修改。
在弹出的对话框中完成以下步骤。
选择dynamic-hz的值。
单击确定。
相关API
API接口 | 说明 |
查询实例的配置参数和运行参数。 | |
修改实例的参数配置。 |