接收到监控推送的告警,redis集群某节点连接数偏高,触发告警阈值,但该项目明显没有大流量访问,最近也没有更新程序,虽然对生产暂时不会产生影响,但隐患毕竟是隐患,需排查。
2.1 排查一下hotkey
redis-cli -p 端口 -a ******* --hotkeys
cat redis.conf |grep polioy
maxmemory-policy volatile-lru
redis-cli -p 端口 -a XXXXXX info |grep connected

netstat -anlp|grep 7006 |wc -l
client list

addr:客户端的地址和端口; fd:套接字所使用的文件描述符; age:以秒计算的已连接时长; idle:以秒计算的空闲时长; flags:客户端; flagdb:该客户端正在使用的数据库; IDsub:已订阅频道的数量; psub:已订阅模式的数量; multi:在事务中被执行的命令数量; qbuf:查询缓冲区的长度(字节为单位, 0 表示没有分配查询缓冲区); qbuf-free:查询缓冲区剩余空间的长度(字节为单位, 0 表示没有剩余空间); obl:输出缓冲区的长度(字节为单位, 0 表示没有分配输出缓冲区); oll:输出列表包含的对象数量(当输出缓冲区没有剩余空间时,命令回复会以字符串对象的形式被入队到这个队列里); omem:输出缓冲区和输出列表占用的内存总量; events:文件描述符事件; cmd:最近一次执行的命令。
问题找到了。很简单,配置一下过timeout时间就好了。
3.1 查询默认连接时间
config get timeout

CONFIG set timeout 300

本文作者:张志彪(上海新炬中北团队)
本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。





