六个命令行排查工具

我们一般使用 JDK 自带的 6 个命令行工具来排查JVM。它们分别是:jps、jstat、jinfo、jmap、jhat 和 jstack,它们都位于 JDK 的 bin 目录下,可以使用命令行工具直接运行。

jps(虚拟机进程状况工具)

jps(JVM Process Status tool,虚拟机进程状况工具),用于列出正在运行的 JVM 的 LVMID(Local Virtual Machine IDentifier,本地虚拟机唯一 ID),以及 JVM 的执行主类、JVM 启动参数等信息。语法如下:

jps [options] [hostid]

常用的 options 选项:

-l:用于输出运行主类的全名,如果是 jar 包,则输出 jar 包的路径;
-q:用于输出 LVMID(Local Virtual Machine Identifier,虚拟机唯一 ID);
-m:用于输出虚拟机启动时传递给主类 main() 方法的参数;
-v:用于输出启动时的 JVM 参数。

jstat(虚拟机统计信息监视工具)

jstat(JVM Statistics Monitoring Tool,虚拟机统计信息监视工具)用于监控虚拟机的运行状态信息。

查询后的参数说明:

参数 说明
S0C 年轻代中第一个存活区的大小
S1C 年轻代中第二个存活区的大小
S0U 年轻代中第一个存活区已使用的空间(字节)
S1U 年轻代中第二个存活区已使用的空间(字节)
EC Edem 区大小
EU 年轻代中 Edem 区已使用的空间(字节)
OC 老年代大小
OU 老年代已使用的空间(字节)
YGC 从应用程序启动到采样时 young gc 的次数
YGCT 从应用程序启动到采样时 young gc 的所用的时间(s)
FGC 从应用程序启动到采样时 full gc 的次数
FGCT 从应用程序启动到采样时 full gc 的所用的时间
GCT 从应用程序启动到采样时整个 gc 所用的时间

jstat 常用的查询参数有:

-class,查询类加载器信息;
-compiler,JIT 相关信息;
-gc,GC 堆状态;
-gcnew,新生代统计信息;
-gcutil,GC 堆统计汇总信息。

jinfo(查询虚拟机参数配置工具)

jinfo(Configuration Info for Java)用于查看和调整虚拟机各项参数。语法如下:

jinfo <option> <pid>

jmap(堆快照生成工具)

jmap(Memory Map for Java)用于查询堆的快照信息。

jhat(堆快照分析功能)

jhat(JVM Heap Analysis Tool,堆快照分析工具)和 jmap 搭配使用,用于启动一个 web 站点来分析 jmap 生成的快照文件。

jstack(查询虚拟机当前的线程快照信息)

jstack(Stack Trace for Java)用于查看当前虚拟机的线程快照,用它可以排查线程的执行状况,例如排查死锁、死循环等问题。

两个可视化排查工具

JConsole 和 JVisualVM 都位于 JDK 的 bin 目录下,JConsole(Java Monitoring and Management Console)是最早期的视图调试工具。

用 JConsole 可以监控线程、CPU、类、堆以及 VM 的相关信息,同样我们可以通过线程这一页的信息,发现之前我们故意写的死锁问题。

JVisualVM 既可以调试本地也可以调试远程服务器

JVM 调优

JVM 调优主要是根据实际的硬件配置信息重新设置 JVM 参数来进行调优的。

JVM 常见调优参数包含以下这些:

-Xmx,设置最大堆内存大小;
-Xms,设置初始堆内存大小;
-XX:MaxNewSize,设置新生代的最大内存;
-XX:MaxTenuringThreshold,设置新生代对象经过一定的次数晋升到老生代;
-XX:PretrnureSizeThreshold,设置大对象的值,超过这个值的对象会直接进入老生代;
-XX:NewRatio,设置分代垃圾回收器新生代和老生代内存占比;
-XX:SurvivorRatio,设置新生代 Eden、Form Survivor、To Survivor 占比。

关于JVM调优的工具及JVM 常见调优参数相关推荐

  1. Day357358359360.JVM监控及诊断工具-GUI -JVM

    JVM监控及诊断工具-GUI 实际中,你下面有1-2款会用即可 一.工具概述 二.JConsole 了解 1.基本概述 2.启动 在jdk安装目录中找到jconsole.exe,双击该可执行文件就可以 ...

  2. 性能监控与调优篇之【3. JVM 监控及诊断工具-GUI 篇】

    文章目录 3. JVM 监控及诊断工具-GUI 篇 3.1. 工具概述 3.2. JConsole 3.3. Visual VM 3.4. Eclipse MAT 3.5. JProfiler 3.6 ...

  3. 【JVM调优工具】JVM调优工具

    一.JVM调优工具 1. jstat工具 jstat命令详解_zhaozheng7758的专栏-CSDN博客_jstat 干货:JVM 堆内存和非堆内存 - 茶轴的青春 - 博客园 [JVM]jsta ...

  4. 【JVM 学习笔记 05】:JVM性能调优工具的使用和优化案例

    [JVM 学习笔记 05]:JVM性能调优工具的使用 1. 使用 jstat(命令行工具) 查看线上系统的JVM运行状况 1.1 常用命令 1.2 使用技巧 1.2.1 随着系统运行,每秒钟会在年轻代 ...

  5. “金三银四”春招指南之“性能调优”:MySQL+Tomcat+JVM,看完还怕面试官的轰炸?

    春招指南之"性能调优":MySQL+Tomcat+JVM,还怕面试官的轰炸? 01 MySQL性能调优 1.1 MySQL性能调优问题有哪些?怎么学? 关于这个,给大家看一份学习大 ...

  6. JVM调优笔记:认识JVM内存模型(jdk1.8)

    文章目录 1.什么是JVM 2.jdk.jre.jvm关系 3.JVM执行过程 4.JVM执行程序的过程 5.JVM运行时数据区 虚拟机栈(线程私有) 本地方法栈(线程私有) 程序计数器(线程私有) ...

  7. JVM 调优 1:“精通 JVM 调优,有过 JVM 调优经验”简历敢写吗?薪资涨 5k 的技巧

    文章目录 前言 一.部分大厂对于 JVM GC 的面试题 1.1.百度 1.2.顺丰 1.3.京东 1.4.淘宝 1.5.阿里.蘑菇街 二.Garbage Collectors(GC)作何使用 三.G ...

  8. jvm maxgcpausemillis 默认值_Tomcat和JVM的性能调优总结

    Tomcat性能调优: 找到Tomcat根目录下的conf目录,修改server.xml文件的内容.对于这部分的调优,我所了解到的就是无非设置一下Tomcat服务器的最大并发数和Tomcat初始化时创 ...

  9. JVM 调优系列 1:“精通 JVM 调优,有过 JVM 调优经验”,简历敢写吗?薪资涨 5k 的技巧!

    文章目录 前言 一.部分大厂对于 JVM GC 的面试题 1.1.百度 1.2.顺丰 1.3.京东 1.4.淘宝 1.5.阿里.蘑菇街 二.Garbage Collectors(GC)作何使用 三.G ...

最新文章

  1. 【iOS】自定义控件入门:可拖动的环形进度
  2. 『TensorFlow』命令行参数解析
  3. kubernetes API Server 权限管理实践
  4. 文档知多少---走出软件作坊:三五个人十来条枪 如何成为开发正规军(二十五)[转]...
  5. [收藏]整理了一些T-SQL技巧
  6. 成功解决ImportError: cannot import name ‘joblib‘
  7. html中刷新按钮的代码,常见的按钮类型 点击button刷新的几种常用代码
  8. t-sql中的事务控制及错误处理
  9. 多所“双一流”明确将扩招!清华、上交、哈工大等也做出回应
  10. 理发师睡觉问题、银行叫号问题详解 操作系统
  11. ACCESS模糊查询出现的变态问题,不知道该问题的希望注意,知道内幕的高手还望给小弟一个解释 Thanks...
  12. js获取CuteEditor的值
  13. python set集合转numpy.array
  14. 安装SVN及安装语言包
  15. 解决域用户安装软件权限问题
  16. 计算机专业基础820考什么,820计算机专业基础考纲
  17. 九、Kali Linux 2 社会工程学工具
  18. 护照、身份证识别阅读器
  19. [已解决]Notepad++ 无法安装HexEditor
  20. Excel如何将文本中间的数值提取出来

热门文章

  1. 计算点云的二维面积(凹包面积计算、平面旋转)
  2. PCL 任意多边形内部点云提取
  3. 信息产业的生产关系变革
  4. 七夕节的习俗有哪些?
  5. 创建AD域时,直接创建了邮箱联系人,导致无法启用Exchange邮箱
  6. web安全(一):Web安全入门
  7. 同步和异步,阻塞非阻塞IO
  8. 产品经理如何发现大多数“沉默”用户的需求
  9. java检查版本更新失败_华为审核被拒:检查HMS Core更新失败
  10. 关于javaSSM框架优点介绍