如何在Linux下通过命令行查看Java应用程序的堆大小(和已使用内存)?
我已经通过jmap试过了。但它提供了信息。关于内部内存区域,如Eden/ PermGen等,这对我来说没什么用。
我想找的是:
最大内存:1GB 最小内存:256mb 堆内存:700mb 已用内存:460mb
这是所有。我知道我可以在JConsole等中看到这一点,但我需要通过命令行来完成。(不能启用JMX等)
如何在Linux下通过命令行查看Java应用程序的堆大小(和已使用内存)?
我已经通过jmap试过了。但它提供了信息。关于内部内存区域,如Eden/ PermGen等,这对我来说没什么用。
我想找的是:
最大内存:1GB 最小内存:256mb 堆内存:700mb 已用内存:460mb
这是所有。我知道我可以在JConsole等中看到这一点,但我需要通过命令行来完成。(不能启用JMX等)
当前回答
就Java堆大小而言,在Linux中可以使用
ps aux | grep java
or
ps -ef | grep java
并查找-Xms, -Xmx以找出指定的初始和最大堆大小。
但是,如果您感兴趣的Java进程中没有-Xms或-Xmx,则意味着您的Java进程正在使用默认的堆大小。您可以使用以下命令来查找默认大小。
java -XX:+PrintFlagsFinal -version | grep HeapSize
或者一个特定的jvm,例如,
/path/to/jdk1.8.0_102/bin/java -XX:+PrintFlagsFinal -version | grep HeapSize
并寻找InitialHeapSize和MaxHeapSize,这是以字节为单位。
其他回答
在我的情况下,我需要检查一个docker容器内的标志,它没有大多数基本的实用程序(ps, pstree…)
使用jps,我得到了运行的JVM的PID(在我的情况下1),然后用jcmd 1 VM。我从运行的JVM中获得了这些标志。
这取决于您有哪些可用的命令,但这可能会对某些人有所帮助。:)
jstat -gccapacity javapid (ex. stat -gccapacity 28745)
jstat -gccapacity javapid gaps frames (ex. stat -gccapacity 28745 550 10 )
上述命令的O/P示例
NGCMN NGCMX NGC S0C
87040.0 1397760.0 1327616.0 107520.0
NGCMN Minimum new generation capacity (KB).
NGCMX Maximum new generation capacity (KB).
NGC Current new generation capacity (KB).
更多详情请访问http://docs.oracle.com/javase/1.5.0/docs/tooldocs/share/jstat.html
每个Java进程都有一个pid,首先需要使用jps命令找到这个pid。
一旦有了pid,就可以使用jstat -gc [insert-pid-here]来查找垃圾收集堆行为的统计信息。
Jstat -gccapacity [insert-pid-here]将显示有关内存池生成和空间能力的信息。 Jstat -gcutil [insert-pid-here]将显示每代的利用率占其容量的百分比。有用的得到一个一目了然的使用情况。
请参阅Oracle网站上的jstat文档。
有一个具有可视化方面的命令行工具——jvm-mon。它是一个JVM监控工具,用于命令行显示:
堆使用率、大小和最大值 jvm进程 cpu和GC使用率 前线程
在工具打开时,指标和图表会更新。
示例:
Jvmtop是一个命令行工具,它提供了几个指标(包括堆)的实时视图。
虚拟机概览模式输出示例:
JvmTop 0.3 alpha (expect bugs) amd64 8 cpus, Linux 2.6.32-27, load avg 0.12
http://code.google.com/p/jvmtop
PID MAIN-CLASS HPCUR HPMAX NHCUR NHMAX CPU GC VM USERNAME #T DL
3370 rapperSimpleApp 165m 455m 109m 176m 0.12% 0.00% S6U37 web 21
11272 ver.resin.Resin [ERROR: Could not attach to VM]
27338 WatchdogManager 11m 28m 23m 130m 0.00% 0.00% S6U37 web 31
19187 m.jvmtop.JvmTop 20m 3544m 13m 130m 0.93% 0.47% S6U37 web 20
16733 artup.Bootstrap 159m 455m 166m 304m 0.12% 0.00% S6U37 web 46