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

标签 java linux performance memory heap-memory

如何通过命令行检查 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/

相关文章:

java - 使用 AspectJ 配置 SpringSource 工具套件

java - NoSuchBeanDefinitionException : No qualifying bean

python - 我可以在 Linux 上打开命名管道以在 Python 中进行非阻塞写入吗?

linux - 从 fla 制作 swf 而无需打开它

php - 高效 MySQL 查询 : running various queries through multiple tables, 将结果表分配给数组

python - 寻找 numpy.linalg.norm 的 3D 版本

java - 即使对象属于子类,也会调用父类(super class)方法

java - 当我们可以使用增强的 for 循环迭代集合时,为什么 Java 仍然保留 Iterator ?

linux - 如果我在 linux 中删除写权限,安装在文件夹中的程序是否可以正常运行?

sql - Grails过滤器统计信息插入效果