背景:我在tomcat上运行了一个Spring Boot应用程序,它在过去的几个月里运行得很好。就在上周,我添加了一个功能更新,其中我正在解析一个相当大的csv文件(大约90 mb),并将csv数据存储在几个HashMaps中。一旦加载,JVM大约需要20秒左右才能解析,大约600 MB的空间。 这种解析和加载在启动时发生,即恰好在部署Spring Boot应用程序时。 问题是,自从我在我的应用程序中添加了功能后,JVM偶尔会崩溃。该应用程序运行良好几个小时,然后崩溃。或者,一旦应用程序部署,JVM就会崩溃。这种情况每天至少发生3-4次,因此我们正在遭受停机。 此外,我似乎无法在tomcat日志中找到任何内容。 如果有人能指出我调试这个该死的崩溃的方向,我将不胜感激。 谢谢。
答案 0 :(得分:0)
由于错误的Xmx设置,Linux OOM杀手很可能会杀死你的应用程序。您可以尝试查看dmesg日志。 dmesg -T | grep kill
并找到关于查杀该应用的信息。
答案 1 :(得分:0)
我建议将jProfile附加到你的jvm并分析内存使用情况。或者执行" kill -3 pid"在特定时间间隔生成堆转储文件。这些文件可以帮助您诊断内存占用问题。