主要学习并记录在命令行中操作服务器时使用的六大命令工具,可视化工具JConsole和VisualVM在开发过程中熟悉。
一、jps:虚拟机进程状况工具(JVM Process Status Tool)
    列出正在运行的虚拟机进程,并显示虚拟机执行主类的名称和这些进程的本地虚拟机唯一ID(LVMID)。
    快速定位到某个虚拟机进程。
    jps命令格式:
        jps [options] [hostid]
    Options:
        -q    只输出LVMID,省略主类的名称;
        -m    输出虚拟机进程启动时传递给主类Main()函数的参数;
        -l    输出主类的全名,如果进程执行的是jar包,输出jar路径;
        -v    输出虚拟机进程启动时JVM参数;
    HostId:
        通过RMI协议查询开启了RMI服务的远程虚拟机进程状态。
        jps 192.168.8.7 //查看远程计算机192.168.8.7的情况(默认1099端口)
        jps rmi://192.168.8.7:8888 //查看远程计算机192.168.8.7 8888端口 
 
二、jstat:虚拟机统计信息监视工具(JVM Statistics Monitoring Tool)
    监视虚拟机各种运行状态信息,显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。
    jstat命令格式:
        jstat [option vmid [ interval [s|ms] [count] ] ]
    Options:
        -class    监视类装载、卸载数量、总空间及类装载所耗费的时间;
        -gc    监视Java堆状态,包括Eden区(E)、2个Survivor区(S0,S1)、老年代(O)、永久代(P)等的容量、已用空间、GC时间合计等信息;
        -gccapacity    监视内容与-gc基本相同,但输出主要关注Java堆各个区域使用到的最大和最小空间;
        -gcutil     监视内容与-gc基本相同,但输出主要关注已使用空间占总空间的百分比;
        -gccause    与-gcutil功能一样,但是会额外输出导致上一次gc产生的原因;
        -gcnew    监视新生代gc的状况;
        -gcnewcapacity    监视内容与-gcnew基本相同,输出主要关注使用到的最大和最小空间;
        -gcold    监视老年代gc的状况;
        -gcoldcapacity    监视内容与-gcold基本相同,输出主要关注使用到的最大和最小空间;
        -gcpermcapacity    输出永久代使用到的最大和最小空间;
        -compiler    输出JIT编译器编译过的方法、耗时等信息;
        -printcompilation    输出已经被JIT编译的方法;
 
三、jinfo:Java配置信息工具(Configuration Info for Java)
    实时查看和调整虚拟机的各项参数。
    使用-flag [+/-]name或 -flag name=value修改一部分运行时可写的虚拟机参数。
    jinfo命令格式:
        jinfo [option] pid
    Options:
        -flag name    输出指定name的JVM参数;
        -flag [+|-]name    启用或禁用指定name的JVM参数;
        -flag name=value    设置指定name的JVM参数;
        -flags    打印传递给JVM命令行标志;
        -sysprops    打印Java系统属性键值对;
四、jmap:Java内存映像工具(Memory Map for Java)
    可用于生成堆转储快照,查询finalize执行队列,Java堆和永久代的详细信息等。
    jmap命令格式:
        jmap [option] vmid
    Options:
        -dump    生成Java堆转储快照;
        -finalizerinfo    显示在F-Queue中等待Finalizer线程执行finalize方法的对象;
        -heap    显示Java堆详细信息,如使用哪种回收器、参数配置、分代状况等;
        -histo    显示堆中对象统计信息,包括类、实例数量和合计容量;
        -permstat    以ClassLoader为统计口径显示永久代内存状态;
        -F    当虚拟机进程对-dump选项没有响应时,可以使用这个选项强制生成dump快照;
五、jhat:虚拟机堆转储快照分析工具(JVM Heap Analysis Tool)
    与jmap命令搭配使用,来分析堆转储快照。
    如非必要,不要生产环境分析堆转储快照,建议将dump文件拷贝出来使用Eclipse Memory Analysis(mat)工具分析。
    jhat命令格式:
        jhat [ options ] <heap-dump-file>
六、jstack:Java堆栈跟踪工具(Stack Trace for Java)
    用于生成虚拟机当前时刻的线程快照,定位线程出现长时间停顿的原因。
    jstack命令格式:
        jstack [option] vmid
    Options:
        -F    当正常输出的请求不被响应时,强制输出线程堆栈;
        -l    除堆栈外,显示关于锁的附加信息;
        -m    如果调用到本地方法的话,可以显示C/C++的堆栈;
小结:这六大命令在排查线上问题时很有用,不用死记硬背,平时用的时候,用man命令可获取命令说明,如果能记住并熟练的使用,可以提高排查问题的效率,故在这里手动的敲一遍,加深印象。

《深入理解Java虚拟机》笔记--第四章、虚拟机性能监控与故障处理工具的更多相关文章

  1. 第七章 JVM性能监控与故障处理工具(1)

    1.定位系统问题 依据 GC日志 堆转储快照(heapdump/hprof文件) 线程快照(threaddump/javacore文件) 运行日志 异常堆栈 分析依据的工具 jps:显示指定系统内的所 ...

  2. 《深入理解Java虚拟机》(四)虚拟机性能监控与故障处理工具

    虚拟机性能监控与故障处理工具 详解 4.1 概述 本文参考的是周志明的 <深入理解Java虚拟机> 第四章 ,为了整理思路,简单记录一下,方便后期查阅. JDK本身提供了很多方便的JVM性 ...

  3. java虚拟机之性能监控与故障处理工具

    sun jdk性能监控与故障处理工具 jps: 可以列出正在运行的虚拟机进程,并显示虚拟机执行主类名称以及这些进程的本地虚拟机唯一id. jstat: 用于监视虚拟机各种运行状态信息的命令航工具.它可 ...

  4. JYM虚拟机性能监控与故障处理工具

    虚拟机性能监控与故障处理工具 一.jps:虚拟机进程状况工具 常用指令 二.jstat:虚拟机统计信息监视工具 常用指令 三.jinfo:配置信息工具 四.jmap:Java内存映像工具 常用指令 五 ...

  5. 《深入理解Java虚拟机》虚拟机性能监控与故障处理工具

    上节学习回顾 从课本章节划分,<垃圾收集器>和<内存分配策略>这两篇随笔同属一章节,主要是从理论+实验的手段来讲解JVM的内存处理机制.好让我们对JVM运行机制有一个良好的概念 ...

  6. jvm虚拟机性能监控与故障处理工具

    java开发人员肯定知道jdk的bin目录中有java.exe javac.exe这两个命令行工具,但并非所有程序员都了解过jdk的bin目录之中其他命令行的作用.jdk的工具,体积都比较小,这些命令 ...

  7. JVM(4) 虚拟机性能监控与故障处理工具

    1. Sun JDK 监控和故障处理工具 1)jps:JVM process Status Tool,显示指定系统内所有的HotSpot虚拟机进程.可以列出正在运行的虚拟机进程,并显示虚拟机执行主类( ...

  8. 深入理解Java虚拟机之读书笔记四 性能监控与故障处理工具

    JDK的bin目录下存在很多有效的命令行工具,它们就是jdk\lib\toos.jar类库的封装. 一.jps:虚拟机进程状况工具,查询出LVMID. 二.jstat:虚拟机统计信息监视工具, 三.j ...

  9. 《深入理解Java虚拟机》-----第4章 虚拟机性能监控与故障处理工具

    理论总是作为指导实践的工具,能把这些知识应用到实际工作中才是 我们的最终目的. 给一个系统定位问题的时候,知识.经验是关键基础,数据是依据,工具是运用知识处理数据的手段.这里说的数据包括:运行日志.异 ...

随机推荐

  1. wireshark系列之wireshark简介

    前言:为什么要学wireshark?工欲善其事必先利其器,wireshark是一款工具软件,主要作用是抓取数据封包,可以帮助我们更加直观更加具象的学习各种网路协议(http.TLS.TCP.UDP.I ...

  2. Innobackupx工具命令简单解析

    --defaults-file 同xtrabackup的--defaults-file参数,指定mysql配置文件; --apply-log 对xtrabackup的--prepare参数的封装; - ...

  3. 题解 P1567 【统计天数】

    天哪!竟然没人用优先队列! 小金羊又来水题了... 优先队列中的大根堆帮助我们把时间复杂度降到O(n+logn) 首先我们先了解一下大根堆... 大根堆的性质:根节点比子节点大, 这意味着最上面的节点 ...

  4. 洛谷 P3723 [AH2017/HNOI2017]礼物 解题报告

    P3723 [AH2017/HNOI2017]礼物 题目描述 我的室友最近喜欢上了一个可爱的小女生.马上就要到她的生日了,他决定买一对情侣手环,一个留给自己,一个送给她.每个手环上各有 \(n\) 个 ...

  5. open_basedir restriction in effect的错误及其解决办法

    问题是出现在了PHP.INI上面了   原因是php.ini里设置了     opendir=/var/web/w0895/:/tmp:/usr/lib/php  解答: 其实open_basedir ...

  6. 010. C++ 传值与传引用

    1.参数传递 参数传递:pass by value vs. pass by reference(to const) 推荐:能传引用,尽量传引用(高效,尤其在需要拷贝的对象很大时) class comp ...

  7. 009.C++ const使用

    1.引例 class complex { public: complex(, ) : re (r), im (i) {} complex& operator += (const complex ...

  8. 「Python」5个开源项目

    1-OpenAI universe Universe是一个能在世界上所有的游戏.网站和其他应用中,衡量和训练AI通用智能的软件平台. Universe,AI代理通过称为虚拟网络计算或VNC发送模拟的鼠 ...

  9. WebSocket解释及如何兼容低版本浏览器

    WebSocket类似HTTP 协议,是为了弥补HTTP 协议的缺陷:通信只能由客户端发起,HTTP 协议做不到服务器主动向客户端推送信息. WebSocket 协议在2008年诞生,2011年成为国 ...

  10. [线索二叉树] [LeetCode] 不需要栈或者别的辅助空间,完成二叉树的中序遍历。题:Recover Binary Search Tree,Binary Tree Inorder Traversal

    既上篇关于二叉搜索树的文章后,这篇文章介绍一种针对二叉树的新的中序遍历方式,它的特点是不需要递归或者使用栈,而是纯粹使用循环的方式,完成中序遍历. 线索二叉树介绍 首先我们引入“线索二叉树”的概念: ...