linux下jvm之jstack的使用
首先再linux中启动安装jdk17并启动项目jar
要知道top 命令是 Linux 系统中一个非常强大的实时监控工具,它可以显示系统中各个进程的资源占用情况,包括 CPU 使用率、内存使用量、运行时间等
jps 命令行工具 用于查看JVM进程状态,列出系统上JVM进程的PID(进程号)
然后用jps,找到Java进程PID即5999
用top -p 5999 -H
由上图,Linux下,所有的Java内部进程都对应的一个进程id,也就是说,Linux将java中的线程映射为系统进程。我们看到cpu占用率最高的是进程6016
用jstack打印给定的java进程的堆栈信息,dump信息如下
下载到windows中
将上面cpu占用率最高的进程6016进程号转16进制即0x1780
重点来了,那么我们如何在Linux下分析java的内存占用情况呢?
用jstat -gc 5999 3000
tid 即jvm内部线程的唯一标识(Thread.getId()获得)