用于查找Java堆大小和使用的内存(Linux)的工具?

是否有命令行工具(Linux)检查Java应用程序的堆大小(和已用内存)?

我试过jmap。 但它提供了信息。 关于像伊甸园/ PermGen等内部记忆区域,这对我没有用处。

我正在寻找像这样的东西:
最大内存:1GB
最小内存:256 MB
堆内存:700 MB
使用的内存:460 MB

就这样。 我知道我可以在JConsole等中看到这一点,但我需要一个命令行工具(无法启用JMX等)

任何这样的工具/命令?


每个Java进程都有一个pid ,您首先需要使用jps命令查找。

一旦你有了pid,你可以使用jstat -gc [insert-pid-here]查找垃圾收集堆的行为统计信息。

  • jstat -gccapacity [insert-pid-here]将显示关于内存池生成和空间功能的信息。

  • jstat -gcutil [insert-pid-here]将以其容量的百分比显示每一代的利用率。 有用于一目了然地查看使用情况。

  • 请参阅Oracle网站上的jstat文档。


    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
    

    该命令显示配置的堆大小(以字节为单位)。

    java -XX:+PrintFlagsFinal -version | grep HeapSize
    

    它也适用于EC2上的Amazon AMI。

    链接地址: http://www.djcxy.com/p/14523.html

    上一篇: line Tool to find Java Heap Size and Memory Used (Linux)?

    下一篇: How do I get stack memory stats programatically?