JVM 之 监控工具

虚拟机工具

在我们安装JDK之后,安装目录的bin目录下有很多命令,可以利用这些命令查看程序状态

官方命令介绍: https://docs.oracle.com/javase/8/docs/technotes/tools/unix/

jps(java process status)

    查看本地虚拟机唯一id
    -l :启动类全名
    -m :运行时主类接收的参数
    -v :接收的VM参数

jstat:查看内存使用(类似于linux top)

    jstat -gcutil
    #1000ms 输出5次 vmid(虚拟机id) = 6
    jstat -gc 6 1000 5 


    元空间
        本质和永久代类似。都是对方法区的实现。区别在与元空间不在虚拟机中,而是使用本地内存,所以默认情况下元空间大小受限于本地内存大小。

jinfo:实时查看和设置虚拟机各项参数(设置用+-,查看直接flag名称)

    jinfo -flag 

jmap:查看堆栈快照,可以保存到文件

    jmap -dump:format=b,file=d:\dump.bin PID

jhat(JVM heap analysis tool)

jstack:查看线程快照

    程序中也可以获得:
    Thread.getAllStackTrace();返回一个map。key为Thread,value为StackTraceElement数组。

jconsole:

    内存监控(jstat):开启被监控程序,打开jconsole,选择你要查看的参数
    
    线程监控(jstack):
        死锁检测:
            什么是死锁:
                两个线程,想个临界资源,使用资源时排队等待资源。

VisualVM: 一个集成的检测工具

    eclipse:https://www.cnblogs.com/xifengxiaoma/p/9402497.html
    IDEA:https://www.cnblogs.com/avivaye/p/10515259.html

JProfiler:

https://www.cnblogs.com/linwenbin/p/11439150.html

https://blog.csdn.net/wytocsdn/article/details/79258247

如果是JDK8.0之后,建议使用JMC

在jdk安装目录的bin目录下,具体使用方法,请查看大佬文章

发布了155 篇原创文章 · 获赞 11 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/u013919153/article/details/105252164