关于JVM调优的工具及JVM 常见调优参数
六个命令行排查工具
我们一般使用 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 常见调优参数相关推荐
- Day357358359360.JVM监控及诊断工具-GUI -JVM
JVM监控及诊断工具-GUI 实际中,你下面有1-2款会用即可 一.工具概述 二.JConsole 了解 1.基本概述 2.启动 在jdk安装目录中找到jconsole.exe,双击该可执行文件就可以 ...
- 性能监控与调优篇之【3. JVM 监控及诊断工具-GUI 篇】
文章目录 3. JVM 监控及诊断工具-GUI 篇 3.1. 工具概述 3.2. JConsole 3.3. Visual VM 3.4. Eclipse MAT 3.5. JProfiler 3.6 ...
- 【JVM调优工具】JVM调优工具
一.JVM调优工具 1. jstat工具 jstat命令详解_zhaozheng7758的专栏-CSDN博客_jstat 干货:JVM 堆内存和非堆内存 - 茶轴的青春 - 博客园 [JVM]jsta ...
- 【JVM 学习笔记 05】:JVM性能调优工具的使用和优化案例
[JVM 学习笔记 05]:JVM性能调优工具的使用 1. 使用 jstat(命令行工具) 查看线上系统的JVM运行状况 1.1 常用命令 1.2 使用技巧 1.2.1 随着系统运行,每秒钟会在年轻代 ...
- “金三银四”春招指南之“性能调优”:MySQL+Tomcat+JVM,看完还怕面试官的轰炸?
春招指南之"性能调优":MySQL+Tomcat+JVM,还怕面试官的轰炸? 01 MySQL性能调优 1.1 MySQL性能调优问题有哪些?怎么学? 关于这个,给大家看一份学习大 ...
- JVM调优笔记:认识JVM内存模型(jdk1.8)
文章目录 1.什么是JVM 2.jdk.jre.jvm关系 3.JVM执行过程 4.JVM执行程序的过程 5.JVM运行时数据区 虚拟机栈(线程私有) 本地方法栈(线程私有) 程序计数器(线程私有) ...
- JVM 调优 1:“精通 JVM 调优,有过 JVM 调优经验”简历敢写吗?薪资涨 5k 的技巧
文章目录 前言 一.部分大厂对于 JVM GC 的面试题 1.1.百度 1.2.顺丰 1.3.京东 1.4.淘宝 1.5.阿里.蘑菇街 二.Garbage Collectors(GC)作何使用 三.G ...
- jvm maxgcpausemillis 默认值_Tomcat和JVM的性能调优总结
Tomcat性能调优: 找到Tomcat根目录下的conf目录,修改server.xml文件的内容.对于这部分的调优,我所了解到的就是无非设置一下Tomcat服务器的最大并发数和Tomcat初始化时创 ...
- JVM 调优系列 1:“精通 JVM 调优,有过 JVM 调优经验”,简历敢写吗?薪资涨 5k 的技巧!
文章目录 前言 一.部分大厂对于 JVM GC 的面试题 1.1.百度 1.2.顺丰 1.3.京东 1.4.淘宝 1.5.阿里.蘑菇街 二.Garbage Collectors(GC)作何使用 三.G ...
最新文章
- 【iOS】自定义控件入门:可拖动的环形进度
- 『TensorFlow』命令行参数解析
- kubernetes API Server 权限管理实践
- 文档知多少---走出软件作坊:三五个人十来条枪 如何成为开发正规军(二十五)[转]...
- [收藏]整理了一些T-SQL技巧
- 成功解决ImportError: cannot import name ‘joblib‘
- html中刷新按钮的代码,常见的按钮类型 点击button刷新的几种常用代码
- t-sql中的事务控制及错误处理
- 多所“双一流”明确将扩招!清华、上交、哈工大等也做出回应
- 理发师睡觉问题、银行叫号问题详解 操作系统
- ACCESS模糊查询出现的变态问题,不知道该问题的希望注意,知道内幕的高手还望给小弟一个解释 Thanks...
- js获取CuteEditor的值
- python set集合转numpy.array
- 安装SVN及安装语言包
- 解决域用户安装软件权限问题
- 计算机专业基础820考什么,820计算机专业基础考纲
- 九、Kali Linux 2 社会工程学工具
- 护照、身份证识别阅读器
- [已解决]Notepad++ 无法安装HexEditor
- Excel如何将文本中间的数值提取出来