【问题标题】:Analyze Heap Usage of a running java program in linux分析linux中正在运行的java程序的堆使用情况
【发布时间】:2015-11-18 05:09:06
【问题描述】:

我有一个使用 java 开发的工具。该工具在 linux 主机上运行。 我只能通过终端访问该主机。

此工具处理的数据量很大,我希望查看此工具运行时的堆使用情况或总内存。

有什么方法可以让我从终端做到这一点。

你能否解释一下当程序在eclipse中运行时如何做同样的事情。

【问题讨论】:

  • 可以远程使用jvisualvm和jmc,也可以在本地使用jmap或者jstat。顺便说一句,从终端访问开始,您可以创建一个 VNC 会话并通过 ssh -T 在端口 22 上运行 eclipse。

标签: java linux memory heap-memory


【解决方案1】:

使用 Oracle jvisualvm 来分析您的应用。您也可以使用 jmap 实用程序转储正在运行的应用程序堆,也可以从 jdk 中转储。然后jvisualvm帮你查看dump的比赛

【讨论】:

  • 友情提醒:如果数据量很大,转储堆可能不是一个好主意,它可能会停止应用程序。
【解决方案2】:

我同意@stranger 的回答。但是,我建议您查看 gc 日志(如果已配置),这应该可以让您很好地了解堆是如何被填充的。除非您想要实时监控,您可以使用 jvisualvm 和其他默认使用 Oracle jdk 的 j* 工具进行监控 - 如果他们暂停应用程序以启用所需的仪器,我会首先阅读他们的工作和成本提供信息。

对于 Eclipse,您可以应用相同的工具来监控本地 jvm。

【讨论】:

    猜你喜欢
    • 2022-01-16
    • 2011-10-02
    • 2011-10-14
    • 1970-01-01
    • 2018-12-11
    • 2018-10-11
    • 2010-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多