问题现象:
几台ECS服务器的应用站点,无规律地出现CPU一直维持在90%以上,重启后过一段时间又会出现相同的现象。
排查&分析:
数据库、Redis等服务器资源使用率都正常;
并无突发的高并发访问;
接口慢日志中只有少数慢的接口。
以上现象都属于正常现象,据此分析,最有可能的情况就是发生代码死循环,导致接口并未执行完成,慢日志无法记录到。
方案:
记录还在执行中未结束的慢日志接口及开始执行时间,定时输出所有到LogService中,通过LogService查看到其中一个接口执行超过了7分钟:
查看代码发现其中使用了一段while代码段,存在死循环的可能:
通知负责人调整代码后,服务器恢复正常
网友评论