一次swagger导致的年轻代频繁gc

在测试环境中,发现一个无人访问的Java进程CPU占用率异常,通过日志分析发现频繁的年轻代GC。经过一系列排查,包括检查代码、分析heap dump、模拟测试环境等,最终发现是Swagger的自动刷新机制导致的。/error_404 和 /null/swagger-resources/configuration/ui 接口被不断请求,造成资源浪费。通过Tomcat日志定位到Swagger界面在浏览器中未关闭,导致死循环调用。关闭该页面后,问题得到解决,GC恢复正常。这次经历强调了深入理解技术框架、善用工具和解决问题的重要性。
摘要由CSDN通过智能技术生成

起因:

​ 一次在测试环境top查看系统状况的时候,偶然发现一个java进程的cpu占用率较高,因为该程序最近不在测试阶段,应该是没有访问量的一个状态,cpu占用率却会频繁到7~15左右,对于一个没有任何请求进来的进程这肯定是不正常的。一天没写bug的我准备看下这个问题。

经过:

于是就去查看了下这个java项目的日志,接口和项目日志一条都没有打印。到这里,猜测cpu占用应该是gc进程一直在工作。因为是测试环境,没有打印出gc日志,在启动命令加上:

-XX:+PrintGCDetails -XX:+PrintGCDateStamps

​ 再看控制台日志,果然gc发生的比较频繁:

2020-07-14T15:52:25.847+0800: [GC (Allocation Failure) [PSYoungGen: 460032K->256K(492032K)] 518970K->59226K(1016320K), 0.0060979 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
2020-07-14T15:52:36.257+0800: [GC (Allocation Failure) [PSYoungGen: 460032K->256K(492544K)] 519002K->59258K(
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值