2014-09-23 1342 views
0

我正在开发使用Java/J2EE的Web应用程序。当我在服务器上部署该应用程序时,它运行两天后,tomcat自动停止并打印此错误消息,并且如果1天内不访问该应用程序,可以帮助我解决此问题。内存不足以使Java运行时环境继续运行

我已经设置堆大小-Xms1024m -Xmx1536M -XX:MaxPermSize参数= 1024M”

没有足够的内存用于Java运行时环境继续。 机内存分配(malloc的)未能分配32776个字节组块::新 更多信息的错误报告文件保存为: /usr/local/apache-tomcat-7.0.53/bin/hs_err_pid15512.log

+0

这可能是您的代码可能使用大量内存的情况。你有没有想过使用say profiling来扫描你的代码的性能问题。它不是那个服务器有问题可能是你的代码是真正的问题 – vikeng21 2014-09-23 12:25:54

+1

最大perm大小1gb似乎有点过分;如果真的需要它那么高,可能已经是一个不正确的指标。 – Gimby 2014-09-23 12:29:03

+0

执行应用程序内存消耗分析。代码中很可能有内存泄漏。 – 2014-09-23 12:43:51

回答

0

至少转到保存错误报告的目录(在本例中为/usr/local/apache-tomcat-7.0.53/bin/hs_err_pid15512.log)会很好。我建议阅读报告中的内容,因为如果它说32位模式下的内存不足,请尝试使用64位jvm来解决问题。如果第一个不起作用,那么去你的eclipse.ini文件,编辑你的堆大小为2gbs,这为jvm提供了更多的内存来运行。但它可能只是暂时的。