美文网首页
JDK的命令行工具

JDK的命令行工具

作者: 愤怒的灰机 | 来源:发表于2018-09-24 17:01 被阅读0次

    主要介绍jdk命令行工具,参考自《深入理解java虚拟机》
    4.2.1 jps虚拟机进程状况工具
    jps——JVM Process Status Tool:用来列出正在运行的虚拟机进程

    4.2.2 jstat虚拟机统计信息监视工具
    jstat——JVM Statistics Monitoring Tool:用来监视虚拟机的各种运行状态信息,具体包括类装载,内存,垃圾收集,JIT编译等运行数据,主要用来在运行期定位虚拟机性能问题。
    jstat命令格式:
    jstat [ option vmid [intervals [s/ms] [count] ] ]
    说明:
    (1)option:希望查询的虚拟机信息,如:
    -class : 类装载,卸载数量,总空间,类装载耗费时间等
    -gc : java堆状况,包括eden,两个survior,老年代,永久代等的容量,已用空间,GC时间合计等。
    (2)vmid:进程id(可以通过jps命令或任务管理器获得)
    (3)interval : 代表查询间隔,默认单位:毫秒
    (4)count:查询次数
    例:jstat -gc 2764就可以查看该进程的gc信息。

    4.2.3 jinfo Java配置信息工具
    jinfo:用来实时的查看和调整虚拟机的各项参数
    命令格式:jinfo [ option ] pid
    如:查询 CMSInitiatingOccupancyFraction参数值:
    -flag CMSInitiatingOccupancyFraction 1444
    结果:-XX:CMSInitiatingOccupancyFraction=85
    修改: -flag CMSInitiatingOccupancyFraction=86 1444
    注意:jinfo以及后面的jmap在windows平台下都可能会有一些限制。

    4.2.4 jmap Java内存映像工具
    jmap——Memory Map for Java:用于生成堆转储快照(一般称为heapdump或dump文件),以及查询finalize执行队列,Java堆和永久代的详细信息,如空间使用率,当前使用的收集器等。
    命令格式: jmap [ option ] vmid
    option举例:
    -dump:生成java堆转储快照,格式为:-dump:[live,] format=b, file=<filename>
    -finalizerinfo: 等待执行finalize方法的对象队列,windows下无效。
    例:jmap -dump:format =b,file=eclipse.bin 2477

    4.2.5 jhat 虚拟机堆转储快照分析工具
    jhat——JVM Heap Analysis Tool:用来与jmap搭配使用,来分析jmap的堆转储快照,并将结果显示在本地浏览器中(如localhost:7000),但一般不会用jhat分析,因为(1)分析工作费时费力,一般不会直接在服务器上做,(2)有很多更直观更强大的替代工具(VisualVM,Eclipse Memory Analyzer)。

    4.2.6 jstack Java堆栈跟踪工具
    jstack——Stack Trace for Java: 用于生成虚拟机当前时刻的线程快照(每一条线程正在执行的方法堆栈的集合,一般称为threaddump或javacore文件)并以此来定位线程出现长时间停顿的原因,如死锁,死循环,等待外部资源等。
    命令格式:jstack [ option ] vmid
    option:
    -F:当正常输出的请求不被响应时,强制输出线程堆栈
    -l: 除堆栈外显示关于锁的附加信息
    -m: 如果调用到本地方法的话,可以显示c/c++的堆栈。

    相关文章

      网友评论

          本文标题:JDK的命令行工具

          本文链接:https://www.haomeiwen.com/subject/ahchoftx.html