在我们的生产环境中,JBoss 7.1.3 和 Amazon Linux 上的 Java 6。我试图弄清楚 JBoss 在运行时实际使用了多少分配的内存。我们使用以下参数启动我们的 JBoss(使用最大 10 GB 的空间)......
JAVA_OPTS="-Xms256m -Xmx10240m -XX:-UseGCOverheadLimit -XX:MaxPermSize=512m -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"
当我运行 top 时,它会显示这个……
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
13252 jboss 20 0 15.6g 9.5g 25m S 126.8 32.3 587:44.01 java
Linux freemem 显示......
[myuser@east1g ~]$ free -m
total used free shared buffers cached
Mem: 30104 13002 17102 0 162 2099
-/+ buffers/cache: 10739 19365
Swap: 0 0 0
有什么方法可以判断我的 JBoss 进程实际使用了多少分配的内存?
最佳答案
是的,您可以使用 jconsole、jvisualvm、jstat 等工具。所有这些应用程序都会显示您当前的堆大小(jvm 从您的操作系统占用了多少内存),以及实际的 jvm 内存使用情况(jvm 可以保留比它实际使用的更多..)
比如通过jvisualvm可以看到预留了多少内存,正在使用多少内存
关于java - 我能知道 JBoss 在运行时使用了多少内存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41189198/