java内存不足错误堆空间
我正在用jsp/servlet开发web应用程序,我对netbeans和Java有一个问题。我的程序需要大数据处理。因此,我使用-Xmx512m通过 工具->服务器->在平台选项卡上,下面有一个VM选项 Java平台。 那就好了 现在我的问题是我正在构建WAR文件,直接部署并运行在另一台机器Tomcat中进行演示, 在这里,我面临同样的问题java内存不足错误堆空间 我也试过了 环境变量集CATALINA_OPTS=-Xms512m-Xmx512m 这也帮不了我java内存不足错误堆空间,java,tomcat,out-of-memory,Java,Tomcat,Out Of Memory,我正在用jsp/servlet开发web应用程序,我对netbeans和Java有一个问题。我的程序需要大数据处理。因此,我使用-Xmx512m通过 工具->服务器->在平台选项卡上,下面有一个VM选项 Java平台。 那就好了 现在我的问题是我正在构建WAR文件,直接部署并运行在另一台机器Tomcat中进行演示, 在这里,我面临同样的问题java内存不足错误堆空间 我也试过了 环境变量集CATALINA_OPTS=-Xms512m-Xmx512m 这也帮不了我 如何解决这个问题?请给我指出正确
如何解决这个问题?请给我指出正确的方向尝试设置
PermSize
和MaxPermSize
值,这些值应该在Catalina.bat
中的tomcat启动时设置,然后使用此脚本停止
和启动
set CATALINA_OPTS=-server -Xms1024m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m
我建议您使用IBM support Workbench(具有堆转储分析器)启用堆转储和分析,并准确理解问题并相应地进行配置。最后我找到了解决问题的方法 在Catalina.bat文件中 你可以找到一些如下的文本
set _EXECJAVA=%_RUNJAVA%
set MAINCLASS=org.apache.catalina.startup.Bootstrap
set ACTION=start
set SECURITY_POLICY_FILE=
set DEBUG_OPTS=
set JPDA=
在这下面你需要把
设置CATALINA_选项=-Xms512m-Xmx512m
堆大小大于计算机的物理内存。比如说,
java-Xmx2g BigApp
初始化VM时出错
无法为对象堆保留足够的空间
无法创建Java虚拟机
修复方法是使其低于物理内存:java-Xmx1g BigApp我知道我的回答完全迟到了,但如果有人遇到同样的情况,我认为值得在这里写一个注释。我指的是tomcat 9,因此您可能需要检查此处提到的内容与您的版本的相关性: 在%CATALINA_HOME%/bin/CATALINA.bat中明确指出:
rem WHEN RUNNING TOMCAT AS A WINDOWS SERVICE:
rem Note that the environment variables that affect the behavior of this
rem script will have no effect at all on Windows Services. As such, any
rem local customizations made in a CATALINA_BASE/bin/setenv.bat script
rem will also have no effect on Tomcat when launched as a Windows Service.
rem The configuration that controls Windows Services is stored in the Windows
rem Registry, and is most conveniently maintained using the "tomcatXw.exe"
rem maintenance utility, where "X" is the major version of Tomcat you are
rem running.
如果您检查%CATALINA_HOME%/bin文件夹,您会发现一个名为“tomcat9w.exe”的文件。双击它,您可以看到这个屏幕截图,您可以为它设置Xms和Xmx参数,以便为您保存到注册表中
希望这对您有所帮助。内存不足错误可能是Tomcat的web.xml中的会话超时数过大造成的。在这种情况下,许多web会话可能占用许多系统内存。将其设为-Xmx1024m,然后重试。环境变量中的位置?最终我找到了问题的解决方案请参见我的答案below@Sathish您使用的是哪种环境?窗口还是Unix?在Catalina.bat中,我需要添加哪一行that@duffymo你看到Catalina.bat文件了吗有很多行。。这就是我问你的
set CATALINA\u OPTS=
。你必须更新这一行。@Sathish-是的,但它们并不都设置CATALINA_选项。