如何通过命令行检查 Linux 上 Java 应用程序的堆大小(和已用内存)?
我已经通过jmap尝试过。但它提供信息。关于 Eden/PermGen 等内部存储区域,这对我没有用。
我正在寻找类似的东西:
- 最大内存:1GB
- 最小内存:256 MB
- 堆内存:700 MB
- 已用内存:460 MB
就这样。我知道我可以在 JConsole 等中看到这一点,但我需要通过命令行来完成。 (无法启用 JMX 等)
原文由 Jasper 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何通过命令行检查 Linux 上 Java 应用程序的堆大小(和已用内存)?
我已经通过jmap尝试过。但它提供信息。关于 Eden/PermGen 等内部存储区域,这对我没有用。
我正在寻找类似的东西:
就这样。我知道我可以在 JConsole 等中看到这一点,但我需要通过命令行来完成。 (无法启用 JMX 等)
原文由 Jasper 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
7 回答5.3k 阅读
8 回答6.2k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
每个 Java 进程都有一个
pid
,您首先需要使用jps
命令找到它。获得 pid 后,您可以使用
jstat -gc [insert-pid-here]
来查找垃圾收集堆行为的统计信息。jstat -gccapacity [insert-pid-here]
将显示有关内存池生成和空间能力的信息。jstat -gcutil [insert-pid-here]
将显示每一代的利用率占其容量的百分比。有助于一目了然地了解使用情况。请参阅 Oracle 网站上的 jstat 文档。