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


14

是否有任何命令行工具来监视CentOS中Java的堆大小使用情况?

Answers:




4

jvmtop是一个命令行工具,可提供多个指标(包括堆)的实时视图。

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

为什么进程11272出错?
akirekadu '16

@akirekadu有很多原因。最常见的是jvmtop和目标jvm之间的JDK不兼容或权限不足/被拒绝。有关详细信息,请参见常见问题解答
MRalwasser '16

1

您可能要分析内存使用情况。

GCView可以帮助您可视化GC日志显示的内容。

如果您已经启用了gc-log,则可以tail -f在该日志上使用。


1

尝试一下它在ubuntu和redhat中起作用的方法:

java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|PermSize|ThreadStackSize'

对于Windows:

java -XX:+PrintFlagsFinal -version | findstr /i "HeapSize PermSize ThreadStackSize"

对于Mac

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™SE运行时环境(内部版本1.7.0_05-b05)Java HotSpot(TM)64位服务器VM(内部版本23.1-b03,混合模式)

要找到以MB为单位的大小,请将该值除以(1024 * 1024)

要监视活动堆内存使用情况,请使用jconsole。

Jconsole截图


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.