1

我最近安装了带有 32 位可执行文件的 Alfresco 4.0d。

每当有人访问该应用程序时,我都会收到 OutOfMemory 错误。

我用谷歌搜索了它,发现需要添加更多内存。

因此,我尝试在 Alfresco 的 tomcat 中编辑 setenv.bat 文件,如下所示:

set JAVA_HOME=D:\Alfresco\java
set JAVA_OPTS=-server -Xss1024K -Xms1G -Xmx2G -XX:MaxPermSize=128M -XX:NewSize=512m   

但是,错误仍然发生。

我在任务管理器中注意到 tomcat6.exe 使用的内存不超过 960mb,所以我的选项不适用于它?

问候,努诺。

4

4 回答 4

6

如果您使用可执行文件安装了 Alfresco 社区,则很可能您正在将 Alfresco 作为服务运行。为了在将 tomcat/Alfresco 作为服务安装时更新 JVM 参数,请导航到您的 tomcat/bin 目录并以管理员身份运行以下命令:

C:\Alfresco\tomcat\bin>tomcat6w.exe //ES//alfrescoTomcat

这将打开一个小的选项卡式窗口。单击“Java”选项卡并在“Java 选项:”文本框下输入所需的选项,即:

-Xms128M
-Xmx1536M
-Dalfresco.home=C:\Alfresco

点击应用并重新启动您的服务。如果您跟踪日志(cygwin),您将看到如下内容:

Alfresco JVM - v1.6.0_27-b07; maximum heap size 1365.375MB

服务的 OOTB 设置可以在 service.bat 中找到。这些是 Alfresco 安装程序创建服务时使用的选项。有关将 Alfresco 作为服务运行的更多信息,请参阅: http ://wiki.alfresco.com/wiki/Windows_Service_HOW-TO 。

于 2012-07-10T17:31:49.233 回答
3

恐怕,实际上您不能在 java 32 位上使用 -Xmx2G,也许您的设置会被忽略?

看这里 http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#gc_heap_32bit

“在大多数现代 32 位 Windows 系统上,最大堆大小范围为 1.4G 到 1.6G。”

于 2012-07-10T14:28:08.847 回答
1

Out Of Memory Erorr 与 PermGem 大小有关。根据 Alfresco wiki,推荐值为 256M (-XX:MaxPermSize:256m)。如果您没有特定的 Alfresco 安装,请为 Alfresco 使用推荐的 JVM 设置http://wiki.alfresco.com/wiki/JVM_Tuning#General_Case

您可以在catalina.bat文件中添加您的更改。如果您将 Alfresco 用作 Windows 服务,请遵循 ConsultStan 的说明。

于 2012-07-10T20:32:33.273 回答
0

对于 Tomcat,在 \apache-tomcat-7.0.37\bin 中找到

我编辑了 catalina.bat 以添加以下行:

设置 JAVA_OPTS=%JAVA_OPTS% -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:MaxPermSize=256M

我编辑了 catalina.sh

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"

它适用于e

有帮助;)

于 2013-04-07T16:24:39.413 回答