jdk 命令行工具
-
jsp
可列出正在执行的虚拟机进程,并显示虚拟机执行的主类的名称,及这些进程的本地虚拟机的唯一ID。
选项:
-q 只列出本地id,省略主类名
-m 输出虚拟机启动进程时传递给主类函数的参数
-l 输出主类全名。如执行的时=是jar包,输出jar路径
-v 输出虚拟机进程启动时jvm参数
-
jstat
用于监控虚拟机运行时的各种状态信息。可以显示本地或远程虚拟机进程中的类装载,内存,垃圾收集,JIT编译等运行数据。运行期间定位虚拟机性能问题的首选命令行工具。
命令格式: jshat [option vmid [interval[s|ms] [count] ] ]
本地虚拟机进程vmid 与LVMID 一致,远程虚拟机进程 vmid 格式为:
[protocol:] [//] LVMID [@hostname[:port]/servername]
interval 代表间隔 count 代表次数,省略说明只查一次
常用选项:
-class 监视类装载,卸载数量,总空间及类装载所消耗的时间
-gc 监视堆状况,包括Eden区,2个survivor区,老年代,永久代等数量,已用空间,gc时间合计等信息
-gcutil 与-gc基本相同,但输出主要关注已使用空间占总空间的百分比。
-gccause 与-gcutil功能一样,但是会额外输出导致上一次gc产生的原因。
-
jinfo
作用是实时的查看和调整虚拟机的各项参数
-
jmap
可用于生成堆转储快照,查询finalize执行队列,java堆和永久代的详细信息
-
jhat
分析生成的堆转储快照
-
jstack
用于生成虚拟机当前时刻的线程快照,即当前虚拟机内每一条线程正在执行的方法堆栈集合。主要用于定位线程长时间停顿的原因,死锁,死循环,请求外部资源导致的等待。
jstack [option] vmid
选项:
-F 当正常输出的请求不被响应时,强制输出线程堆栈
-l 除线程堆栈外,显示关于锁的信息
-m 如果调用本地方法的话,可以显示c/c++的堆栈
java.lang.Thread的getAllStackTraces()方法用于获取虚拟机中所有线程的StackTraceElement对象。可调用该方法在管理页面输出,通过浏览器来查看线程堆栈。
jdk可视化工具
位于jdk的bin目录下
-
jConsole
-
VisualVM
网友评论