当JVM被Heap释放时

时间:2016-02-11 07:48:58

标签: java linux tomcat jvm

我需要在应用程序运行时监视JVM空间我使用JMC进行监视但是当我停止tomcat时JMC无法正常工作。

我的目标是我需要验证当应用程序关闭时,所有堆内存(或某些部分)都会被释放以及它释放多少。

有没有可以监控的工具?如果是,建议我。

我的理解是当tomcat或没有java进程运行时Heap会自动被释放。如果错了我就错误

4 个答案:

答案 0 :(得分:3)

您可以使用topvmstat等工具(粗略地)监控正在使用的物理和虚拟内存量。

但基本上托马斯是正确的:

  • JVM是一个Linux进程。
  • 退出的JVM等同于其进程退出。
  • 当Linux进程退出时,它所拥有的所有资源(独占)都会被释放:内存,本机线程,文件描述符,套接字,管道......甚至是分离的文件。操作系统会处理这个问题。

简而言之,在退出后,您无需担心JVM消耗资源。

答案 1 :(得分:2)

Java堆是Java进程分配的内存的一部分。 Java VM终止后,将释放包括内存在内的所有资源。

答案 2 :(得分:0)

一旦应用程序停止,进程就会终止并且内存将释放到操作系统

  

请注意,只要流程结束,就没有GC或其他任何内容   与JVM相关,因为所有这些东西只能起作用   JVM正在运行。

答案 3 :(得分:0)

正如Stephen C引用的那样,你不应该担心在应用程序退出后释放内存。

free -m命令将在linux节点上显示可用内存。您可以使用此命令验证可用内存使用情况。

  

free显示系统中可用和已用物理和交换内存的总量,以及内核使用的缓冲区和高速缓存。通过解析/ proc / meminfo来收集信息。