命令
jps
列出java的进行
jinfo+进程号
java进程的相关信息
jstat -gc + 进程号 +时间
跟踪这个进程的GC信息
jstack + 进程号
把进程里面的所有线程信息打印出来
== jvm的cpu爆了怎么查询? ==
使用linux系统级别命令 top 查询进程占用的cpu比较高
top -hp +进程号查询进程里面的哪个线程占用cpu比较高
在使用jstack 对应一般出现两种结果
1 Gc线程 查看gc日志
2 业务线程 查看业务代码
== 频繁FGC怎么定位==
观察每次的FGC是否正常,每次能回收掉是正常现象
jmap -histto +进程号(容易产生JVM卡死)
观察每个对象占用多少内存
jmap -dump:format=b,file=20220912.hprof +进程号
转储 把java的整个堆进行转储 然后使用工具 例如jvisualvm(jdk自带的工具)
== 项目启动的时候设置HeapDumpOnOutOfMemoryError==