30 | 如何在系统中实现延迟监控?
蒋德钧
你好,我是蒋德钧。
我们知道,Redis 的一个显著特征就是能提供低延迟的数据访问。而如果 Redis 在运行过程中变慢了,我们就需要有方法能监控到哪些命令执行变慢了。更进一步的需求,就是我们需要有方法监控到,是 Redis 运行过程中的哪些事件导致 Redis 变慢了。这样一来,我们就既可以检查这些慢命令,分析它们的操作类型和访问的数据量,进而提出应对方法,也可以检查监控记录的事件,分析事件发生的原因并提出应对方法。
那么,为了满足这些需求,我们就需要有一套监控框架,一方面能监测导致 Redis 变慢的事件,另一方面,能监控并记录变慢的命令。其实,这也是我们在开发后端系统时,经常会面临的一个运维开发需求,也就是如何监控后端系统的运行状态。
今天这节课,我就来带你了解 Redis 的延迟监控框架和慢命令日志的设计与实现。掌握今天的课程内容后,一方面,你可以把这套监控框架应用到实际的业务,而另一方面,你也可以参考 Redis 的实现,给自己的系统增加延迟监控功能。
下面,我们就先来看下 Redis 实现的延迟监控框架。
延迟监控框架的实现
实际上,Redis 在运行过程中,以下表格中给出的几类事件都会导致 Redis 变慢,我们通常也把这些事件称为延迟事件。你可以参考表格中的这些事件类型,以及它们在源码中对应的事件名称。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
Redis延迟监控框架和慢命令日志是本文的主要内容。该框架实现了对可能导致Redis运行变慢的事件类型的记录和分析,通过采样记录超过阈值的事件时长,并提供统计计算和应对措施设计。慢命令日志则记录超出阈值的命令及参数,以及发送命令的客户端信息,方便运维人员查看分析。文章介绍了监控框架的实现逻辑、采样函数和延迟事件的统计计算过程,以及慢命令日志的记录逻辑。读者可以了解Redis延迟监控框架的设计思路和实现细节,以及如何在实际应用中使用该框架进行延迟监控和分析。文章还提到了Redis的INFO命令用于记录实时运行状态或资源使用情况。总的来说,本文深入介绍了Redis延迟监控框架和慢命令日志的实现细节,为读者提供了深入了解Redis监控和分析的知识。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Redis 源码剖析与实战》,新⼈⾸单¥59
《Redis 源码剖析与实战》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(1)
- 最新
- 精选
- 斩弦蒋老师好,今天很巧正好在思考延时的问题,同时看到了更新了这节课, 我的问题(1)./redis-cli --intrinsic-latency xxx这个命令能够看到内核本身的延时,因为我们的redis环境是部署在虚拟化环境的,时不时会有延时增大的现象发生,也有过发生问题后排查到集中发生在某个虚机所在的宿主机上,问题处理就是将这个虚机迁移到了其他的宿主机上,那么能否围绕./redis-cli --intrinsic-latency这个命令,我们可以自行开发一个逻辑,每10s或者15s采样一次,然后作为CPU内核延时的指标值,放到我们的监控逻辑中,这个耗时可以作为问题出现时的一个参考,作为问题出现时的一个重要的延时的成分; 另外还有一个问题(2)latency monitor这个功能对系统的性能影响是否明显呢,其实看到了这个功能后,有想要尝试使用这个功能以扩展延时问题排查时的手段2021-10-191
收起评论