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

新手上路,请多包涵

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

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

我正在寻找类似的东西:

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

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

原文由 Jasper 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 536
1 个回答

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

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

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

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

请参阅 Oracle 网站上的 jstat 文档

原文由 farmer1992 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题