问题背景 在业务使用redis过程中,出现了read timeout 的异常. 问题排查 直接原因 运维查询redis慢查询日志,发现在异常时间节点,有redis慢查询日志,执行sadd 命令花费了1秒钟.但由于redis是单线程应用,执行单条命令的阻塞,会造成其他命令的排队等候,导致read timeout. 深入排查-为什么sadd这么慢呢 为什么sadd这么慢呢?查阅redis文档看到,sadd操作的复杂度是O(1)的,实际使用本机docker搭建redis进行测试,使用脚本进行sadd,…
连接池无法获取到连接或获取连接超时redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool对于这类问题的原因有几类,可以根据以下一一进行排查 连接配置错误 Jedis连接池配置不可用,redis.host或redis.ip或redis.password 配置有误,手动检查配置是否都配置正确. 本地连接池连接数达到最大 连接池中有配置最大连接数maxTotal,本地…
一.业务背景+系统架构 本次场景为kafka+storm+redis+hbase,通过kafka的数据,进入storm的spout组件接收,转由storm的Bolt节点进行业务逻辑处理,最后再推送进kafka. 表数据相关的逻辑为:查询Hbase表数据,首次查询会写入redis和storm cache,再次查询,会直接从redis或cache中取值. storm应用: 二.性能测试场景 1.数据:json类型的用户偏好数据700万 2.灌入方式:java脚本 3.hbase表:生产全量数据导入…
起因是本地为开发工程打包,总是提示 source 1.3 不支持注释.enum等等,但询问开发开发表示自己本地打包正常. 于是排查版本问题.开发的jdk是1.6版本,自己的是1.7,于是想要不降级吧,自己重新安装个1.6看看.有想法就有行动,闹心的行动. 下载一个64位JDK1.6后,没有拆卸原有的1.7,直接就安装了.闷声作大死,eclipse直接打不开了,提示: 使用window本身服务拆卸1.7时,可以正常拆卸,但是卸载1.6时,总会提示ddl寻找不到, 最后在网上找了个工具 your u…
问题过程 输入法业务于12月12日上线了词库接受业务,对部分用户根据用户uuid判断进行回传,在12月17日早上8点多开始出现大量的php报错(Redis went away),报错导致了大量的链接积累,瞬间服务器的80端口堆积到了2w多导致了接受计费日志的接口全部返回超时,丢失了1小时的结费数据. 报错内容如下: [17-Dec-2018 01:32:51 UTC] PHP Fatal error: Uncaught exception 'RedisException' with messag…
项目架构: 部分组件如下: SpringCloudAlibaba(Nacos+Gateway+OpenFeign)+SpringBoot2.x+Redis 问题背景: 最近由于用户量增大,在高峰时期,会导致用户服务偶尔Redis出现连接超时的情况, 例如:从Redis中获取手机验证码 ,登录成功后,将token存入Redis,以及涉及到使用Redis的场景都会出现RedisConnectionFailureException 异常日志: 237614 2021-03-02 17:24:42.59…
事故时常有,最近特别多!但每次事故总会有人出来背锅!如果不是自己的锅,解决了对自己是一种成长,如果是自己的锅,恐怕锅大了,就得走人了,哈哈哈... 这不,最近又出了一个锅:从周五开始,每天到11点就不停的接到服务器报警,对于一般的报警,我们早已见怪不怪了,然后作了稍微排查(监控工具: CAT),发现是redis问题,没找到原因,然后过了一会自己就好了,所以刚开始也没怎么管他.然后,第二天报警,第三天报警,领导火了,然后只好说,要不等到周一上班咱们再解决吧! 周一,开发同学还没去找运维同学查问题,…
服务器挖矿病毒的排查过程 事情起因:朋友的一台阿里云主机,登录特别卡,找我看看 这一看就感觉出问题了,机器特别卡,top看了一眼,cpu几乎是100%运行 但是奇怪的是用top命令完全看不出来哪个进程占用资源,当时的截图找不到了,这是第一次遇到这种情况,没有显示今晨占用资源,偏偏资源被跑满 排查 刚接手问题的时候我也是一脸闷逼,很奇怪,明明是没有进程占用的,为什么还会这样? 第一反应是去看看开启启动和crontab 果然是修改了crontab,不过病毒应该是很多地方都有,修改后过几分钟还有. 随…
之前同事反馈说线上遇到Redis反序列化异常问题,异常如下: XxxClass1 cannot be cast to XxxClass2 已知信息如下: 该异常不是必现的,偶尔才会出现: 出现该异常后重启应用或者过一会就好了: 序列化协议使用了hessian. 因为偶尔出现,首先看了报异常那块业务逻辑是不是有问题,看了一遍也发现什么问题.看了下对应日志,发现是在Redis读超时之后才出现的该异常,因此怀疑redis client操作逻辑那块导致的(公司架构组对redis做了一层封装),发现获取/…
解Bug之路-记一次中间件导致的慢SQL排查过程 前言 最近发现线上出现一个奇葩的问题,这问题让笔者定位了好长时间,期间排查问题的过程还是挺有意思的,正好博客也好久不更新了,就以此为素材写出了本篇文章. Bug现场 我们的分库分表中间件在经过一年的沉淀之后,已经到了比较稳定的阶段.而且经过线上压测的检验,单台每秒能够执行1.7W条sql.但线上情况还是有出乎我们意料的情况.有一个业务线反映,每天有几条sql有长达十几秒的超时.而且sql是主键更新或主键查询,更奇怪的是出现超时的是不同的sql,似…