0

我已经安装了 JBoss BRMS 6.4 的可部署版本。我的 linux 虚拟机有 09 Gb 的内存。为了控制 JVM 内存,我通过修改 JAVA_OPTS 行来调整standalone-secure.conf 文件:

JAVA_OPTS="-Xms6G -Xmx6G -XX:MaxPermSize=3g -Djava.net.preferIPv4Stack=true"

我重新启动 BRMS 服务,但在执行 BRMS 规则时,top 命令显示 java 仍然消耗超过 6 Gigabit 的内存。

我该如何解决这个问题,或者在 JBoss EAP 中控制 Java 内存的最佳方法是什么?

感谢您的帮助社区

4

1 回答 1

0

-Xmx 参数控制 Java 堆的最大大小,但它不是分配给 Java 进程的唯一内存。除了 JVM 内部使用的 Xmx、PermGen、本机 C++ 堆之外,线程堆栈的空间非常理想,在 64 位 JVM 上默认情况下每个线程 1mb。所以java进程消耗的总内存是

JvmProcessMemory = JvmHeap + PermGen + (ThreadStackSize* Number-of-Threads) + Jvm-native-c++-heap

于 2018-02-19T02:30:26.617 回答