首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >命令行工具来查找Java堆大小和使用的内存(Linux)?

命令行工具来查找Java堆大小和使用的内存(Linux)?
EN

Stack Overflow用户
提问于 2012-10-09 18:03:10
回答 17查看 709.2K关注 0票数 198

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

我已经尝试过jmap了。但它提供了信息。关于内部存储区,如Eden/ PermGen等,这对我没有用处。

我正在寻找类似这样的东西:

  • 最大内存:1 1GB
  • 最低内存: 256 MB
  • 堆内存: 700 MB
  • 已用内存: 460 MB

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

您知道这样的工具/命令吗?

EN

回答 17

Stack Overflow用户

发布于 2012-10-09 22:44:30

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

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

  • jstat -gccapacity [insert-pid-here]将显示有关内存池生成和空间的信息,capabilities.
  • jstat -gcutil [insert-pid-here]将以容量百分比的形式显示每一代的利用率。一目了然地了解使用情况非常有用。

请参阅甲骨文网站上的jstat docs

票数 170
EN

Stack Overflow用户

发布于 2014-03-01 08:19:15

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

代码语言:javascript
复制
java -XX:+PrintFlagsFinal -version | grep HeapSize

它也可以在EC2上的Amazon AMI上运行。

票数 94
EN

Stack Overflow用户

发布于 2013-04-07 19:19:58

jvmtop是一个命令行工具,它提供了包括堆在内的多个指标的实时视图。

VM概述模式的输出示例:

代码语言:javascript
复制
 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
票数 77
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12797560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档