增加Tomcat内存设置[重复]

Posted

技术标签:

【中文标题】增加Tomcat内存设置[重复]【英文标题】:Increase Tomcat memory settings [duplicate] 【发布时间】:2012-09-23 05:12:56 【问题描述】:

可能重复:Dealing with “java.lang.OutOfMemoryError: PermGen space” error

我的开发机器中有 8GB RAM,我正在尝试运行 Apache Tomcat (7.0.29) 来同时托管 Artifactory (2.6.3) 和 Jenkins (1.479)。我试图找到 Jenkins 的内存要求,但看起来他们的 wiki 已关闭。

$TOMCAT_HOME/bin/catalina.sh中,我添加了以下命令:

CATALINA_OPTS="$CATALINA_OPTS -server -Xms1024m -Xmx3052m"

这应该使 Tomcat 的 JVM 大小(基本上)保持在 1 到 3 GB 之间,为我留出足够的空间来存放其他东西,并且为 Tomcat 提供足够的内存供 Artifactory/Jenkins 使用,如果我可以想要。

(值得我尝试与JAVA_OPTS 相同的结果只是为了获得相同的确切结果)。我保存更改并运行startup.sh。 Tomcat 开始启动,然后死于 OOME,抱怨 Tomcat 已用完 PermGen 空间:

Exception in thread "SocketListener(<hex-stuff>.local.)"
java.lang.OutOfMemoryError: PermGen space
java.lang.OutOfMemoryError: PermGen space
java.lang.OutOfMemoryError: PermGen space
Exception in thread "hudson initialization thread" java.lang.OutOfMemoryError: PermGen space
java.lang.OutOfMemoryError: PermGen space

我会在哪里出错?我已经阅读了多篇关于如何做到这一点的文章,并且(相信!)我正在准确地关注它们。关于如何进一步调试的任何想法或想法?提前致谢!

【问题讨论】:

你试过增加永久空间吗?例如-XX:MaxPermSize=128m 嗨@Augusto - 请在 sgpalit 的回答下查看我的评论 - 我有同样的问题要问你!再次感谢! 【参考方案1】:

尝试设置这个

CATALINA_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"

$tomcat-folder\bin\setenv.sh 中(必要时创建它)。

看 http://www.mkyong.com/tomcat/tomcat-javalangoutofmemoryerror-permgen-space/ 了解更多详情。

【讨论】:

您好,请不要只提供链接的答案,并尝试尽可能多地进入主要答案 感谢@sgpalit (+1) - 我很快就会在这里试一试。只是好奇,如果我希望我的 Java 堆大小约为 3GB,我的 PermGen 应该有多大? 就我而言,我没有修改 sh 文件。服务器上有 yum repo 并且 Tomcat 是从那里安装的,这让我有点气馁。我刚刚修改了/usr/share/tomcat7/conf/tomcat7.conf 并添加了上述选项。 Tomcat 自带的 RUNNING.txt 声明:“注意:不要使用 JAVA_OPTS 来指定内存限制。用于停止 Tomcat 的小进程不需要太多内存。这些设置属于到 CATALINA_OPTS。”由于这似乎是一个很好阅读的答案,您可以添加它。 @MartinSpamer - -Xms 与堆栈大小无关。请参阅java -X 了解这些设置实际 的作用。使用-Xms1536m 是完全合理的,将-Xms 设置为与-Xmx 相同,如果您知道它最终将使用其所有或几乎所有堆,则该过程会更高效。

以上是关于增加Tomcat内存设置[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat:调整内存比例

tomcat内存连接数优化

如何设置Tomcat的JVM虚拟机内存大小

tomcat增加内存

Maven增加Tomcat运行内存

增加 Debian 7 上的 tomcat 内存