CentOS中有没有监控Java堆大小使用情况的命令行工具?
答案1
使用jps
和jstack
了解有关 Java 进程的更多信息。jstat
对于 Java 统计监控也很有用。
答案2
cd /opt/www/java/jdk/bin/
# jmap -heap <JAVA_PID>
答案3
虚拟机顶部是一个命令行工具,它提供多个指标的实时视图,包括堆。
VM 概览模式的输出示例:
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
答案4
尝试一下,它在 ubuntu 和 redhat 中都有效:
java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|PermSize|ThreadStackSize'
对于窗户:
java -XX:+PrintFlagsFinal -version | findstr /i "HeapSize PermSize ThreadStackSize"
对于苹果机
java -XX:+PrintFlagsFinal -version | grep -iE 'heapsize|permsize|threadstacksize'
所有这些命令的输出类似于以下输出:
uintx InitialHeapSize := 20655360 {product} uintx MaxHeapSize := 331350016 {product} uintx PermSize = 21757952 {pd product} uintx MaxPermSize = 85983232 {pd product} intx ThreadStackSize = 1024 {pd product}
java 版本“1.7.0_05” Java(TM) SE 运行时环境(内部版本 1.7.0_05-b05) Java HotSpot(TM) 64 位服务器 VM(内部版本 23.1-b03,混合模式)
要查找以 MB 为单位的大小,请将值除以 (1024*1024)
要监视实时堆内存使用情况,请使用 jconsole。