我目前正在开发一个需要大量内存的项目,但我无法让 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
and参数设置为零:http: //java-service-wrapper.996253.n3.nabble.com/4096MB-heap-limit-td1483.html - 但是,这会导致 mule 无法正常启动。maxmemory
我还明确尝试通过包装器传递额外的 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 堆空间的方法?