用于监控 Java 堆的命令行工具

用于监控 Java 堆的命令行工具

CentOS中有没有监控Java堆大小使用情况的命令行工具?

答案1

使用jpsjstack了解有关 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。

Jconsole 截图

相关内容