And*_*dre 6 tomcat out-of-memory tomcat7
好的,所以我最近搬到了一台全新安装Win7 Pro的新电脑
我从旧PC上复制了所有旧文件和文件夹
我将我的Tomcat 7文件复制到新PC
但是现在当我尝试启动它时,我得到了这个错误
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "http-bio-8080-exec-2"
Run Code Online (Sandbox Code Playgroud)
我已经无处寻找解决这个问题的方法,发现了数百种不同的解决方案,但没有人帮助过我
什么可能导致这个错误?(我正在使用从旧PC复制的完全相同的tomcat文件,以及仍在旧PC上运行的完全相同的项目)
注意:
我设置的环境变量与旧计算机上的环境变量完全相同.
我正在使用我以前在PC上使用的完全相同的webapp(所以它不能用于内存泄漏或项目出现问题)
我收到了相同的错误消息,虽然从Web上的其他来源可能会由于堆空间用尽而导致错误消息,而不仅仅是由于耗尽了permgen空间.
我需要从命令行修复此问题,而不是使用图形界面.为此,我<tomcat install directory>/bin/setenv.sh在内容中添加了一个新文件:
CATALINA_OPTS="-Xms4096M -Xmx4096M -XX:PermSize=512M -XX:MaxPermSize=512M"
Run Code Online (Sandbox Code Playgroud)
如果您有现有setenv.sh文件,请将其添加到该文件中.使用适合您的安装的任何数字 - 我的服务器有96GB的内存,所以我可以为Tomcat支付4GB.
如上所述catalina.sh,您应该将其添加到setenv.sh而不是catalina.sh为了将此本地修改与基本catalina.sh脚本分开.您应该更改CATALINA_OPTS而不是JAVA_OPTS仅为实际的Tomcat服务器需要更大量的内存; 更改JAVA_OPTS将需要关闭进程的内存,如果系统内存不足,可能会干扰服务器的关闭.
您可以将它们分配给JAVA_OPTS位于catalina.sh(tomcatPath/bin) 内部的变量:
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8
-server -Xms1536m -Xmx1536m
-XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m
-XX:MaxPermSize=256m -XX:+DisableExplicitGC"
Run Code Online (Sandbox Code Playgroud)
另一种可能性是内存泄漏。您可以检查此处以排除内存泄漏问题。
| 归档时间: |
|
| 查看次数: |
35385 次 |
| 最近记录: |