自动调整定期任务的执行频率

开启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或以上。

操作步骤

  1. 访问实例列表,在上方选择地域,然后单击目标实例ID。

  2. 在左侧导航栏中,单击参数设置

  3. 在参数列表中,单击dynamic-hz右侧操作列的修改

  4. 在弹出的对话框中完成以下步骤。

    1. 选择dynamic-hz的值。

    2. 单击确定

相关API

API接口

说明

DescribeParameters

查询实例的配置参数和运行参数。

ModifyInstanceConfig

修改实例的参数配置。