如何从命令行检查正在运行的 JVM 的堆使用情况?
2022-08-31 20:29:19
我可以从命令行检查正在运行的JVM的堆使用情况吗,我的意思是实际使用情况,而不是使用Xmx分配的最大数量。
我需要它是命令行,因为我无法访问窗口环境,并且我想要基于值的脚本,应用程序在Jetty应用程序服务器中运行
我可以从命令行检查正在运行的JVM的堆使用情况吗,我的意思是实际使用情况,而不是使用Xmx分配的最大数量。
我需要它是命令行,因为我无法访问窗口环境,并且我想要基于值的脚本,应用程序在Jetty应用程序服务器中运行
你可以使用jstat,比如:
jstat -gc pid
完整的文档在这里 : http://docs.oracle.com/javase/7/docs/technotes/tools/share/jstat.html
对于 Java 8,您可以使用以下命令行来获取堆空间利用率(以 kB 为单位):
jstat -gc <PID> | tail -n 1 | awk '{split($0,a," "); sum=a[3]+a[4]+a[6]+a[8]; print sum}'
该命令基本上总结如下:
您可能还希望包括元空间和压缩类空间利用率。在这种情况下,您必须将 a[10] 和 a[12] 添加到 awk 和中。