用于查找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)?