前言
昨天刚下班,刚开始玩手机就收到了群里的告警通知
初步排查
上去skywarking一看 我去 等待线程已经有8k个了,没想到线程也跟我们一样这么“内卷”
cpu也是直接拉满了
临时解决
因为CPU被拉满了进不去节点,也无法进入节点jstack排查等待的线程,所以先重启恢复服务
深度排查
延长skywarking分析,查看什么时候开始发生线程激增
发现服务出现了日线级别的线程数增长
由于此项目为内网项目,无外部流量
于是开始怀疑是最近新上的版本导致的
在git记录上找近期相关于线程的提交操作,还真有这种情况
每次进入方法都会创建一个线程池,而没有关闭操作
定长线程池中的worker线程会一直循环拿任务,因为没有关闭,于是每次调用这个方法就会创建一个线程,于是出现了日线级别的线程增长
最后
其实这种cpu激增最难排查,节点都进不去,什么信息基本上都拿不到,skywarking数据采样也会有误差