【发布时间】:2014-02-27 11:21:54
【问题描述】:
我目前正在处理一个需要大量内存的项目,但我无法让 Mule 3.4.0 使用超过 4gb 的 RAM(在 RHEL 6.2 上运行)。我正在使用 Java HotSpot 64 位服务器 JVM 1.7.0_45-b18 和 Mule 的社区版。
我一直在编辑 wrapper.conf 文件,我尝试了很多设置都无济于事。
我看到 Mule JIRA 中列出了一个错误:https://www.mulesoft.org/jira/browse/MULE-7018 已针对 3.4.0 关闭,但不完整。
我最近的尝试是明确地尝试强制它立即占用 8gb 的堆空间,以下是最新的尝试:
# Initial Java Heap Size (in MB)
wrapper.java.initmemory=8192
# Maximum Java Heap Size (in MB)
wrapper.java.maxmemory=8192
我尝试将 initmemory 和 maxmemory 参数设置为零,根据这篇关于包装器的旧帖子:http://java-service-wrapper.996253.n3.nabble.com/4096MB-heap-limit-td1483.html - 但是,这会导致 mule 无法正常启动。
我还明确尝试通过包装器传递额外的 JVM 参数:
wrapper.java.additional.6=-Xmx8192
wrapper.java.additional.7=-Xms8192
执行此操作时,我可以看到两个内存设置都被发送到 JVM(即-Xmx8192 -Xms8192 首先在进程行上,然后是-Xms4096m -Xmx4096m)。但是,我的 top 命令产生的 JVM 进程占用的驻留内存不超过 4.2gb。我意识到顶部的 RES 列并不是确定 JVM 内存使用情况的 100% 明确方法,但我的印象是,如果我尝试分配 8gb 开箱即用,它肯定应该超过 4gb。机器有 60gb 物理内存。
有没有人发现为 Mule 3.4.0 获得超过 4GB 堆空间的方法?
【问题讨论】:
-
您运行的是 32 位 JVM 吗?
-
好问题,感谢您的提问,是的,我使用的是 64 位 JVM。我已对原始问题进行了进一步说明。
标签: java memory-management mule java-service-wrapper