- 可以从集群维度选择全部 slave 进行分析 。
- 同一个集群的相同服务器 slave 实例串行分析,不同服务器的 slave 实例并行分析,最大并发度默认 10,同时可以分析 10 个实例,并且可以自定义输入执行分析的并发度 。
- 分析出符合 Bigkey 规定标准的所有 key 信息:大于 1MB 的 string 类型的所有 key,如果不存在就列出最大的 50 个 key;hash、list、set、zset 等类型元素个数大于 2000 的所有 key,如不存在就给出每种类型最大的 50 个 key 。
- 增加暂停、重新开始、结束功能,暂停分析后可以重新开始 。
我们分析了 Daas 平台的水平扩容时迁移 key 的过程及影响参数,内容如下:
(1)【cluster-node-timeout】:控制集群的节点切换参数,
master 堵塞超过 cluster-node-timeout/2 这个时间,就会主观判定该节点下线 pfail 状态,如果迁移 Bigkey 阻塞时间超过 cluster-node-timeout/2,就可能会导致 master-slave 发生切换 。
(2)【migrate timeout】:控制迁移 io 的超时时间
超过这个时间迁移没有完成,迁移就会中断 。
(3)【迁移重试周期】:迁移的重试周期是由水平扩容的节点数决定的,
比如一个集群扩容 10 个节点,迁移失败后的重试周期就是 10 次 。
(4)【一个迁移重试周期内的重试次数】:在一个起迁移重试周期内,会有 3 次重试迁移,
每一次的 migrate timeout 的时间分别是 10 秒、20 秒、30 秒,每次重试之间无间隔 。
比如一个集群扩容 10 个节点,迁移时候遇到一个 Bigkey,第一次迁移的 migrate timeout 是 10 秒,10 秒后没有完成迁移,就会设置 migrate timeout 为 20 秒重试,如果再次失败,会设置 migrate timeout 为 30 秒重试,
如果还是失败,程序会迁移其他新 9 个的节点,但是每次在迁移其他新的节点之前还会分别设置 migrate timeout 为 10 秒、20 秒、30 秒重试迁移那个迁移失败的 Bigkey 。
这个重试过程,每个重试周期阻塞(10+20+30)秒,会重试 10 个周期,共阻塞 600 秒 。其实后面的 9 个重试周期都是无用的,每次重试之间没有间隔,会连续阻塞了 Redis 实例 。
(5)【迁移失败日志】:日志的缺失
迁移失败后,记录的日志没有包括迁移节点、solt、key 信息,不能根据日志立即定位到问题 key 。
我们对这个迁移过程做了优化,具体如下:
(1)【cluster-node-timeout】:延长超时时间
默认是 60 秒,在迁移之前设置为 15 分钟,防止由于迁移 Bigkey 阻塞导致 master-slave 故障切换 。
(2)【migrate timeout】:减少阻塞时间
为了最大限度减少实例阻塞时间,每次重试的超时时间都是 10 秒,3 次重试之间间隔 30 秒,这样最多只会连续阻塞 Redis 实例 10 秒 。
(3)【重试次数】:去掉了其他节点迁移的重试
迁移失败后,只重试 3 次(重试是为了避免网络抖动等原因造成的迁移失败),每次重试间隔 30 秒,重试 3 次后都失败了,会暂停迁移,日志记录下 Bigkey,去掉了其他节点迁移的重试 。
(4)【优化日志记录】:日志记录
迁移失败日志记录迁移节点、solt、key 信息,可以立即定位到问题节点及 key 。
关于BigKey、Hotkey的总结首先是需要从源头治理,防止 Bigkey 、Hotkey形成,加强对业务开发同学 bigkey 相关问题的宣导;
其次,提升及时发现的能力,实现 Bigkey 、Hotkey 及时探测能力 。
参考资料:Github:rdb-tools:https://github.com/sripathikrishnan/redis-rdb-tools
(1) redis命令:Redis 命令参考 — Redis 命令参考
(2) Github: https://github.com/sripathikrishnan/redis-rdb-tools
(3) another redis desktop manager下载地址AnotherRedisDesktopManager 发行版:https://gitee.com/qishibo/AnotherRedisDesktopManager/releases
推荐阅读
- 鞠婧祎|假身高、假头发、假屁股,“弄虚作假”的娱乐圈还有什么是真的
- 李冰冰|断盐断油!李冰冰的“翻车”,打脸了多少明星的“伪自律”!
- 陈瑶|《情满九道弯》出圈理由:萨日娜的演技,陈瑶的脸,热依扎的衣品
- 职工医保个账“缩水”的经济账,事关3.5亿打工人!
- 参保人去世,养老保险就白缴了吗?6个最关心的问题权威解答来了
- 韭菜花炒蛋的做法
- 叉烧炒蛋的做法
- 卤鸡蛋
- 南瓜蛋羹的做法
- 豆豉辣椒炒蛋
