java问题排查命令
jps
:查看java进程jmap
:导出堆详细信息
(与jhat
一起使用)jhat
:分析Java堆
的命令(与jmap
一起使用)jstack
:可以定位到线程堆栈,根据堆栈信息我们可以定位到具体代码,所以它在JVM性能调优中使用得非常多。
通常结合 ps
、top
、printf
、grep
命令使用。
printf "%x\n" 21742
得到21742的十六进制值为54ee。
dump 文件里,值得关注的线程状态有:
- 死锁,
Deadlock
(重点关注)- 执行中,Runnable
- 等待资源,
Waiting on condition
(重点关注)- 等待获取监视器,
Waiting on monitor entry
(重点关注)- 暂停,Suspended
- 对象等待中,Object.wait() 或 TIMED_WAITING
- 阻塞,
Blocked
(重点关注)- 停止,Parked
jinfo
:输出并修改运行时的java 进程的opts,用于输出JAVA系统参数及命令行参数jstat
:用于监控基于HotSpot的JVM,对其堆的使用情况进行实时的命令行的统计
- 类的加载及卸载情况
- 查看新生代、老生代及持久代的容量及使用情况
- 查看新生代、老生代及持久代的垃圾收集情况,包括垃圾回收的次数及垃圾回收所占用的时间
- 查看新生代中Eden区及Survior区中容量及分配情况等
Option Displays... class 用于查看类加载情况的统计 compiler 用于查看HotSpot中即时编译器编译情况的统计 gc 用于查看JVM中堆的垃圾收集情况的统计 gccapacity 用于查看新生代、老生代及持久代的存储容量情况 gccause 用于查看垃圾收集的统计情况(这个和-gcutil选项一样),如果有发生垃圾收集,它还会显示最后一次及当前正在发生垃圾收集的原因。 gcnew 用于查看新生代垃圾收集的情况 gcnewcapacity 用于查看新生代的存储容量情况 gcold 用于查看老生代及持久代发生GC的情况 gcoldcapacity 用于查看老生代的容量 gcpermcapacity 用于查看持久代的容量 gcutil 用于查看新生代、老生代及持代垃圾收集的情况 printcompilation HotSpot编译方法的统计 转自:https://www.cnblogs.com/rwxwsblog/p/6367243.html