之前同事反馈说线上遇到Redis反序列化异常问题,异常如下: XxxClass1 cannot be cast to XxxClass2 已知信息如下: 该异常不是必现的,偶尔才会出现: 出现该异常后重启应用或者过一会就好了: 序列化协议使用了hessian. 因为偶尔出现,首先看了报异常那块业务逻辑是不是有问题,看了一遍也发现什么问题.看了下对应日志,发现是在Redis读超时之后才出现的该异常,因此怀疑redis client操作逻辑那块导致的(公司架构组对redis做了一层封装),发现获取/…
问题过程 输入法业务于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…
项目中,新增了一个统计功能,用来统计不同手机型号的每天访问pv,看了下redis2.6有个setbit的功能,于是打算尝尝鲜把 redis从2.4更新到了2.6 因为是租了vps.服务器的内存只有4g可以用,最近发现系统 负载很大.发现是redis服务引起的. 查了下redis的key db1 6w+.db1 不到2k.内存监控确有4.5g(这个很奇怪). 这是很不正常的.想了最近在db1加了很多bit.于是把db1 flushdb. 发现内存占用一下就刷刷的降下来了. 查了不少关于reids…
文章首发于[陈树义的博客],点击跳转到原文<线上Kafka突发rebalance异常,如何快速解决?> Kafka 是我们最常用的消息队列,它那几万.甚至几十万的处理速度让我们为之欣喜若狂.但是随着使用场景的增加,我们遇到的问题也越来越多,其中一个经常遇到的问题就是:rebalance(重平衡)问题. 什么是消费组 要想了解 rebalance,那就得先了解消费组(consumer group). 消费组指的是多个消费者(consumer)组成起来的一个组,它们共同消费 topic 的所有消息…
Linux(2)---记录一次线上服务 CPU 100%的排查过程 当时产生CPU飙升接近100%的原因是因为项目中的websocket时时断开又重连导致CPU飙升接近100% .如何排查的呢 是通过日志输出错误信息: 得知websocket时时重新 连接的信息,然后找到原因 解决了. 当然这里幸好能通过日志大致分析出原因 那么我就在思考如果日志没有告诉任何信息 但线上CPU还是接近100%那么如何排查呢.所以学习了下排查过程. 通过查阅资料并实践后,这里总结了两种办法.第一种博客满天飞的方法…
一次线上CPU高的问题排查实践 前言 近期某一天上班一开电脑,就收到了运维警报,有两台服务CPU负载很高,同时收到一线同事反馈 系统访问速度非常慢,几乎无响应. 一个美好的早晨,最怕什么就来什么.只好推掉其他会议,专心搞定问题. 排查 登录系统一看,后端的接口访问果然全部超时. 先使用top命令查看下是由哪个进程占用CPU较高. 从图上可看出,pid=26481的Java进程占用了385%的CPU,机器是4核8G的配置. 2.然后查看下是哪个Java应用 ps -ef | grep java 发…
本文转载自线上CPU飙升100%问题排查 引子 对于互联网公司,线上CPU飙升的问题很常见(例如某个活动开始,流量突然飙升时),按照本文的步骤排查,基本1分钟即可搞定!特此整理排查方法一篇,供大家参考讨论提高. 问题复现 线上系统突然运行缓慢,CPU飙升,甚至到100%,以及Full GC次数过多,接着就是各种报警:例如接口超时报警等.此时急需快速线上排查问题. 问题排查 不管什么问题,既然是CPU飙升,肯定是查一下耗CPU的线程,然后看看GC. 核心排查步骤 1.执行"top"命令:…
经过: 项目上线后经常报 Unexpected end of stream.; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: Unexpected end of stream. 白天平均半个小时报一次,晚上频率低些,但是在测试环境和预发环境就没有出现过这种问题. 当时我们项目是从公司的另一个项目拆分出来的,所有配置和另一个环境基本一样 分析: JedisConnectionExceptio…
项目背景 最近,做一个按优先级和时间先后排队的需求.用 Redis 的 sorted set 做排队队列. 主要使用的 Redis 命令有, zadd, zcount, zscore, zrange 等. 测试完毕后,发到线上,发现有大量接口请求返回超时熔断(超时时间为3s). Error日志打印的异常堆栈为: redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the po…
“ 处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及 Full GC 次数过多的问题. 当然,这些问题最终导致的直观现象就是系统运行缓慢,并且有大量的报警. 本文主要针对系统运行缓慢这一问题,提供该问题的排查思路,从而定位出问题的代码点,进而提供解决该问题的思路. 对于线上系统突然产生的运行缓慢问题,如果该问题导致线上系统不可用,那么首先需要做的就是,导出 jstack 和内存信息,然后重启系统,尽快保证系统的可用性. 这种情况可能的原因主要有两种: 代码中某个位置读取…