记一次jvm oom 导致docker容器频繁重启问题排查


应用部署在docker容器中,日志无报错,docker却有多次重启记录,Nginx监控报警

过程:

1.执行top命令查看内存占用情况

  

 

 很干净的容器,只有java进程在运行

2.查看jvm情况

  2.1 查看heap堆大小,可以使用jinfo -flags PID 查看

或者使用jmap -heap PID 查看结果更清晰些

 

   2.2 查看垃圾回收情况jstat -gcutil PID [3s] 每三秒打印一次

 

 

修改启动参数-Xmn 2048m 一般为heap堆大小的1/2或者1/4

常用启动参数 -server -Xmx4000m -Xms1500m -Xmn1024m

 不生效,导出堆文件。使用mat分析内存文件,查看是什么对象,占有内存。http://www.eclipse.org/mat/downloads.php

本次是因为session超时设置为1天,且内网安全扫描,会生成大量session,导致大量session不过期,内存占用一直增加。

将session调整为30min后,解决问题。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM