当 JVM 是 Heap 时,Heap 被释放
When JVM is Heap gets released
我需要在应用程序 运行 时监视 JVM space 我使用 JMC 监视但是当我停止时 tomcat JMC 不工作。
我的目标是我需要验证当应用程序关闭时所有堆内存(或某些部分)是否被释放以及它释放了多少。
有什么监控工具吗?如果是,建议我。
我的理解是当 tomcat 或没有 java 进程时 运行 堆将自动获取 released.Correct 如果我错了
Java 堆是 Java 进程分配的内存的一部分。一旦 Java VM 终止,包括内存在内的所有资源都会被释放。
应用程序一停止,进程就终止,内存释放给操作系统
Note that as soon as the process ends, there is no GC or anything else
related to the JVM, because all that stuff only works as long as the
JVM is running.
您可以使用 top
或 vmstat
之类的工具来(粗略地)监控正在使用的物理和虚拟内存量。
但基本上 Thomas 是正确的:
- JVM 是一个 Linux 进程。
- JVM 退出等同于其进程退出。
- 当 Linux 进程退出时,它拥有的所有资源(独占)都会被释放:内存、本机线程、文件描述符、套接字、管道......甚至分离的文件。 OS 会处理这个问题。
总之,不用担心JVM退出后会消耗资源。
正如 Stephen C 所说,您不必担心释放内存 post 应用程序退出。
free -m
命令将显示 linux 节点上的可用内存。您可以使用此命令验证可用内存使用情况。
free displays the total amount of free and used physical and swap memory in the system, as well as the buffers and caches used by the kernel. The information is gathered by parsing /proc/meminfo.
我需要在应用程序 运行 时监视 JVM space 我使用 JMC 监视但是当我停止时 tomcat JMC 不工作。
我的目标是我需要验证当应用程序关闭时所有堆内存(或某些部分)是否被释放以及它释放了多少。
有什么监控工具吗?如果是,建议我。
我的理解是当 tomcat 或没有 java 进程时 运行 堆将自动获取 released.Correct 如果我错了
Java 堆是 Java 进程分配的内存的一部分。一旦 Java VM 终止,包括内存在内的所有资源都会被释放。
应用程序一停止,进程就终止,内存释放给操作系统
Note that as soon as the process ends, there is no GC or anything else related to the JVM, because all that stuff only works as long as the JVM is running.
您可以使用 top
或 vmstat
之类的工具来(粗略地)监控正在使用的物理和虚拟内存量。
但基本上 Thomas 是正确的:
- JVM 是一个 Linux 进程。
- JVM 退出等同于其进程退出。
- 当 Linux 进程退出时,它拥有的所有资源(独占)都会被释放:内存、本机线程、文件描述符、套接字、管道......甚至分离的文件。 OS 会处理这个问题。
总之,不用担心JVM退出后会消耗资源。
正如 Stephen C 所说,您不必担心释放内存 post 应用程序退出。
free -m
命令将显示 linux 节点上的可用内存。您可以使用此命令验证可用内存使用情况。
free displays the total amount of free and used physical and swap memory in the system, as well as the buffers and caches used by the kernel. The information is gathered by parsing /proc/meminfo.