# 代码存在递归导致某个时间段CPU占用走高

# 问题现象

客户的OA环境,在2024.5.28的16.46开始告警,出现服务器CPU使用率爆满的情况,时不时的使用率会下降,马上又会升到90%多,系统整体使用缓慢。

1717488416427.png

# 问题分析

CPU使用率高的问题,先分析当前OA系统在做什么,通过SeeyonDump系统监控工具导出日志 或 登录系统管理员 - 系统监控查看Thread Dump来分析问题。

如下是问题发生时间的Thread Dump,可以看到大量线程一直在执行,并且WorkFlowMatchUserManagerImpl.doFilterByBeforeNodeLoop存在循环调用:

1717489285444.png

从Thread Dump可以初步定性:这块代码存在递归调用,递归调用极易引起CPU占用高的情况,根据调用堆栈寻找代码源头分析解决问题即可。

创建人:het
修改人:het