我已经安装了JBoss BRMS6.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千兆的内存。
我如何解决这个问题,或者在Java中控制JBoss内存的最好方法是什么?
感谢您对社区的帮助
发布于 2018-02-19 10:30:27
-Xmx参数控制Java堆的最大大小,但它不是分配给java进程的唯一内存。除了Xmx,PermGen,JVM内部使用的原生C++堆,线程堆栈的空间在64位JVM上默认是1mb /线程。因此,java进程占用的总内存是
JvmProcessMemory = JvmHeap + PermGen + (ThreadStackSize* Number-of-Threads) + Jvm-native-c++-heap
https://stackoverflow.com/questions/48858311
复制相似问题