问题描述:
接口访问一直超时,服务处于不可用状态,查看后台日志,发现有大量jedis连接超时异常,查看redis所在服务器资源,发现cpu100%运行中,过一段时间后,服务自行恢复正常.
问题分析:
网上资料看了一些,出现cpu过高的原因主要有以下这些:
1.连接数过多.通过info命令来查看
2.慢查询阻塞.redis是单线程的,如果有慢查询,会阻塞住后续的操作
3.单个value值过大?也可以当作慢查询的一种
4.aof重写/rdb fork的瞬间会阻塞Redis服务器
redis给我们提供了很多命令来帮助排查问题,下面介绍几个重要的:
info : 查看redis的一些基础信息,例如服务器信息,已连接客户端信息,内存信息等,详情可看info命令详解
我们可以通过 config get maxclients 命令,拿到redis允许的最大数,可以看出,这个值是非常大的,我们远没有达到这个量级:
slowlog get命令可以显示慢操作日志:
<
生产环境问题实战(一)-Redis慢查引发的服务不可用
最新推荐文章于 2024-07-01 14:20:51 发布