如何找到 Java 堆大小和使用的内存 (Linux)?

2022-08-31 06:05:47

如何通过命令行检查 Linux 上 Java 应用程序的堆大小(和已用内存)?

我已经尝试了jmap。但它提供了信息。关于内部存储器区域,如伊甸园/彼尔姆基因等,这对我来说没有用。

我正在寻找类似的东西:

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

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


答案 1

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

获得 pid 后,您可以使用 来查找垃圾回收堆行为的统计信息。jstat -gc [insert-pid-here]

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

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

请参阅 Oracle 网站上的 jstat 文档


答案 2

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

java -XX:+PrintFlagsFinal -version | grep HeapSize

它也适用于EC2上的Amazon AMI。


推荐