阅读更多

0顶
0踩

数据库

转载新闻 Redis 2.6 的新特性:Watchdog(看门狗)

2012-03-31 09:52 by 正式编辑 sherry617 评论(0) 有11279人浏览


Watchdog(看门狗)是 Redis 2.6 版本将发布的一个新特性,它用于诊断Redis的延迟问题,这一功能有点类似于慢日志。主要是记录一些太慢的行为,以便排查原因。其具体工作原理和流程如下:

  • 通过运行时的CONFIG SET命令设置watchdog的开启参数
  • 设置完成后,Redis就开始对自身的命令处理进行性能监控
  • 如果Redis发现自己在处理一些操作时不够快,那么就会在日志里记录一条信息,信息包含了在哪一部分占用了时间,并打出具体的调用栈
  • 出现问题的用户到社区反馈的时候,带上日志里的诊断信息,开发者能够更快速准确的定位到你的问题
Redis作者指出,Watchdog还是一个实验性功能,开启它可能会对数据产生影响,所以建议在使用时做好数据备份。

Watchdog的具体设置方法如下例所示:

CONFIG SET watchdog-period 500

通过CONFIG SET命令设置watchdog-period参数,其值单位为毫秒,在上例中,运行时间超过500毫秒的操作将会被记录下来。

注意:这个参数只能通过CONFIG SET来设置,在配置文件里是无法设置的,因为在默认情况下,是绝不推荐开启它的。对性能和稳定性都有影响。当你诊断完成后,可以再通过上面的命令,将延迟时间设置为0来关闭watchdog的功能。

Watchdog在日志中的输出如下例:

[8547 | signal handler] (1333114359)
--- WATCHDOG TIMER EXPIRED ---
/lib/libc.so.6(nanosleep+0x2d) [0x7f16b5c2d39d]
/lib/libpthread.so.0(+0xf8f0) [0x7f16b5f158f0]
/lib/libc.so.6(nanosleep+0x2d) [0x7f16b5c2d39d]
/lib/libc.so.6(usleep+0x34) [0x7f16b5c62844]
./redis-server(debugCommand+0x3e1) [0x43ab41]
./redis-server(call+0x5d) [0x415a9d]
./redis-server(processCommand+0x375) [0x415fc5]
./redis-server(processInputBuffer+0x4f) [0x4203cf]
./redis-server(readQueryFromClient+0xa0) [0x4204e0]
./redis-server(aeProcessEvents+0x128) [0x411b48]
./redis-server(aeMain+0x2b) [0x411dbb]
./redis-server(main+0x2b6) [0x418556]
/lib/libc.so.6(__libc_start_main+0xfd) [0x7f16b5ba1c4d]
./redis-server() [0x411099]
------

上面日志是通过DEBUG SLEEP命令来产生的,你在诊断自己具体问题的时候可能会出现不同的日志。在诊断问题时,如果同时打出了多段日志,尽可能的都发出来,这样方便开发人员进行错误排查。

Via redis
来自: NoSQLFan
0
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Redis2.6 的看门狗

    watchdog(看门狗)是Redis2.6 版本将发布的一个新特性,它用于诊断Redis的延迟问题,这一功能有点类似于慢日志。主要是记录一些太慢的行为,以便排查原因。其具体工作原理和流程如下: 通过运行时的CONFIG...

  • Redis(三)应用:分布式锁

    # delifequals if redis.call("get",KEYS[1]) == ARGV[1] then return redis.call("del",KEYS[1]) else return 0 end Redis 中使用 Lua 脚本 Redis 从 2.6 版本开始引入对 Lua 脚本的支持,通过在 服务器中嵌入 Lua...

  • redis-软看门狗实现分析

    版本实现了软看门狗,利用setitimer产生SIGALRM信号量实现,并且需要定期喂狗,如果没有喂则回触发一次 样例代码如下,可利用代码实现慢操作跟踪/logStackTrace可用于实现coredump的函数栈打印 #include <...

  • 黑马Redis学习笔记 (基础篇+实战篇)

    支持数据持久化(定期将内存搬运到磁盘)支持主从集群、分片集群(数据拆分)支持多语言客户端Redis的官方网站地址:RedisRedis RedisRedis是基于C编写,所以需要先安装Redis所需的gcc依赖 如果有了就跳过

  • Redis 分布式锁:从小白到大神方案都经历了什么?

    想用使用Redlock,官方建议在不同机器上部署5个Redis主节点,节点都是完全独立,也不使用主从复制,使用多个节点是为容错。一个客户端要获取锁有5个步骤客户端获取当前时间T1(毫秒级别);使用相同的key和value顺序...

  • Redis实战篇

    Redis实战笔记

  • redis个人笔记

    redis笔记

  • 常见面试题知识点之:分布式锁

    对缓存查询数据库的代码...为了保证多个进程能看到锁,锁被存在公共存储(比如 Redis、Memcache、数据库等三方存储中),以实现多个进程并发访问同一个临界资源,同一时刻只有一个进程可访问共享资源,确保数据的一致

  • [转] Redis 响应延迟问题排查

    [转] Redis 响应延迟问题排查 转自: http://www.oschina.net/translate/redis-latency-problems-troubleshooting?from=20130317 本文...

  • redis android客户端,Redis客户端GUI工具(RedisClient)

    RedisClient是Redis客户端GUI工具,使用Java swt和jedis编写。它将redis数据以windows资源管理器的界面风格呈现给用户.Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value...

  • redis本地安装和Redisson锁实现设计相关源码解析

    Redisson是Redis服务器上的分布式可伸缩Java数据结构----驻内存数据网格(In-Memory Data Grid,IMDG)。底层使用netty框架,并提供了与java对象相对应的分布式对象、分布式集合、分布式锁和同步器、分布式服务等一...

  • Redis分布式锁相关总结

    Redis分布式锁相关总结

  • Redis笔记

    队列相关指令消费组相关指令四个特殊符号- +: 最小和最大可能出现的id表示只消费新的消息,当前流中最大的id,可以用于将要到来的消息用于XREADGROUP命令,表示迄今还没有发送给组中使用者的信息,会更新消费者组的...

  • 黑马Redis学习——实战篇(4)

    黑马Redis学习——实战篇(4)

  • 【Redis】《Redis 开发与运维》笔记-汇总

    1、Redis提供了两种持久化方式:RDB和AOF,即可以用这两种策略将内存的数据保存到硬盘中。2、复制功能是分布式Redis的基础。3、一般推荐使用的安装方式:源码的方式进行安装。下面以3.0.7版本为例(只需6步): 建立...

  • Redis 响应延迟问题排查

    http://www.oschina.net/translate/redis-latency-problems-troubleshooting?cmp This document will help you understand what the problem could be if you are experiencing latency problems with Redi...

  • redis---分布式锁存在的问题及解决方案(Redisson)

    如果一定想要看门狗不无限进行续签可以如上述进行配置,给予一个自定义的最大持有时间(watchDog 只有在未显示指定加锁时间时才会生效)。当然这是强烈不推荐的做法。 到这里看起来已经相对完善了,但是我们永远要问...

  • Redis 分布式锁的正确实现原理演化历程与 Redisson 实战总结

    ❝可能是最完善的 Redis 分布式锁原理与实战总结,建议收藏Redis 分布式锁使用 指令就可以实现了么?在分布式领域 理论一直存在。分布式锁的门道可没那么简单,我们在网上看到的分布式锁方案可能是有问题的。「码哥...

  • Redis面试题及答案

    Redis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库。

  • 基于springboot大学生就业信息管理系统源码数据库文档.zip

    基于springboot大学生就业信息管理系统源码数据库文档.zip

Global site tag (gtag.js) - Google Analytics