如何通过命令行检查 Linux 上 Java 应用程序的堆大小(和已用内存)?
我已经通过 jmap 尝试过。但它提供信息。关于 Eden/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]
将显示每一代的利用率作为其容量的百分比。有助于一目了然地了解使用情况。
见 jstat docs在 Oracle 的网站上。
关于java - 如何查找 Java 堆大小和使用的内存 (Linux)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12797560/