JVM调优常用命令:
1.jstack [option] 进程id
举例: jstack -l 2544 > /root/opt/2544.stack
生成进程2544的线程快照文件到/root/opt目录下
jstack用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。 线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。
2. jmap命令
jmap -dump:format=b,file=xxx.dump pid :导出dump堆文件信息
举例:jmap -dump:format=b,file=/opt/logs/java_699.dump 699
导出进程id为699的dump文件至目录/opt/logs/
注意:线上服务别轻易执行jmap命令,因为名字执行期间比较耗系统资源,可能会使正常服务线程阻塞住。