背景:我有一个Spring Boot应用程序在tomcat上运行,它在过去的几个月里运行得很好。就在上周,我添加了一个功能更新,我正在解析一个相当大的csv文件(大约90mb),并将csv数据存储在几个HashMaps中。它需要大约20秒左右的时间来解析,并且在JVM中加载后需要大约600MB的空间。这种解析和加载发生在启动时,也就是部署Spring Boot应用程序时。问题是,自从我在我的应用程序中添加了功能后,JVM偶尔会崩溃。应用程序正常运行了几个小时,然后就崩溃了。或者,一旦应用程序被deployed.This,JVM就会崩溃,一天内至少会发生3-4次,我们正因此而遭受停机。而且,我似乎在tomcat日志中找不到任何东西。如果有人能给我指出一个方向来调试这个该死的崩溃,我将不胜感激。谢谢。
发布于 2016-05-28 18:47:13
这很可能是Linux OOM杀手杀死你的应用程序,因为错误的Xmx设置。您可以尝试查看dmesg日志。dmesg -T | grep kill并找到一行关于杀死你的应用程序的内容。
发布于 2016-05-30 11:42:05
我建议将jProfile附加到您的jvm并分析内存usage.Or,只需执行"kill -3 pid“就可以在特定的interval.The文件上生成堆转储文件,这可能会帮助您诊断内存占用问题。
https://stackoverflow.com/questions/37497680
复制相似问题