jdk内置工具使用
jps
–列出java进程,类似于ps命令
–参数-q可以指定jps只输出进程ID ,不输出类的短名称
–参数-m可以用于输出传递给Java进程(主函数)的参数
–参数-l可以用于输出主函数的完整路径
–参数-v可以显示传递给JVM的参数
jinfo
–可以用来查看正在运行的Java应用程序的扩展参数,甚至支持在运行时,修改部分参数
–-flag <name>:打印指定JVM的参数值
–-flag [+|-]<name>:设置指定JVM参数的布尔值
–-flag <name>=<value>:设置指定JVM参数的值
实例:
显示了新生代对象晋升到老年代对象的最大年龄
jinfo -flag MaxTenuringThreshold 2972
-XX:MaxTenuringThreshold=15
显示是否打印GC详细信息
jinfo -flag PrintGCDetails 2972
-XX:-PrintGCDetails
运行时修改参数,控制是否输出GC日志
jinfo -flag PrintGCDetails 2972
-XX:-PrintGCDetails
jinfo -flag +PrintGCDetails 2972
jinfo -flag PrintGCDetails 2972
-XX:+PrintGCDetails
jmap
–生成Java应用程序的堆快照和对象的统计信息
实例:
–jmap -histo 2972 >c:\s.txt
dump堆
–jmap -dump:format=b,file=c:\heap.hprof 2972
jstack
–打印线程dump
–-l 打印锁信息
–-m 打印java和native的帧信息
–-F 强制dump,当jstack没有响应时使用
实例:
查看栈信息
jstack 120 >>C:\a.txt
JConsole
–图形化监控工具
–可以查看Java应用程序的运行概况,监控堆信息、永久区使用情况、类加载情况等
Visual VM
–Visual VM是一个功能强大的多合一故障诊断和性能监控的可视化工具