spring cloud gateway cpu使用异常问题排查
问题 生产环境发现spring cloud gateway服务cpu使用过高,接近100% 使用top命令查询占用CPU较高的线程,发现4个线程CPU异常 spring cloud gateway 基于Netty 实现,默认情况创建一个线程监听端口,accept连接,多个线程(数量等于CPU核心数)处理socket数据,因此怀疑是做路由 转发的四个线程出现问题 使用 jstack 查看java线程栈信息,发现了对应线程确实是做路由转发的线程(jstack中线程是16进制展示的) 排查log4j日志,发现大量日志输出,日志级别为debug,怀疑是请求处理线程输出大量日志导致CPU占用过高 处理方式 调整日志级别到info,重新部署服务,CPU 恢复正常 结论 1、大量日志会影响服务性能,高并发场景,谨慎处理日志级别 2、网关是后台所有请求的入口,基于单一职责原则,只做代理,不要添加认证等业务相关的服务,以防系统出现瓶颈 来源: oschina 链接: https://my.oschina.net/canghaidekongjian/blog/3288464