java - 我能知道 JBoss 在运行时使用了多少内存吗?

标签 java linux memory memory-management jboss

在我们的生产环境中,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可以看到预留了多少内存,正在使用多少内存

enter image description here

关于java - 我能知道 JBoss 在运行时使用了多少内存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41189198/

相关文章:

java - 我正在尝试转换 2 个使用 Java8 语言功能的模块,如何模仿静态/默认方法行为?

java - 从代码渲染一个 jsp 页面并将渲染后的 html 输出作为字符串

java - 找不到环cors :ring-cors:0. 1.5

c - pthread_create 后跟 pthread_detach 仍然会导致 Valgrind 中可能丢失错误

用于多线程的 Java 进程外组件

linux - Shell 脚本命令输出与命令行输出不同

c++ - 如果您在进程崩溃后为其分配内存会怎样?

linux - 在 Linux 上的 IDE 下没有声音(在 Jar 中正常)

linux - domU 内核的 Xen E820 内存映射

c++ - 在 std::deque 上并行化 std::replace