文章插图
hat是用来分析jmap生成dump文件的命令,jhat内置了应用服务器,可以通过网页查看dump文件分析结果,jhat一 般是用在离线分析上 。一、jpsjps 是(JAVA process Status Tool), Java版的ps命令,查看java进程及其相关的信息,如果你想找到一个java进程的 pid,那可以用jps命令替代linux中的ps命令了,简单而方便 。
jps [options] [hostid]
options参数解释:- -l : 显示进程id,显示主类全名或jar路径
- -q : 显示进程id
- -m : 显示进程id, 显示JVM启动时传递给mAIn()的参数
- -v : 显示进程id,显示JVM启动时显示指定的JVM参数
主机或其他服务器ip
最常用示例:
- jps -l 输出jar包路径,类全名
- jps -m 输出main参数
- jps -v 输出JVM参数
命令格式:
【聊聊JVM优化的常用指令】
jinfo [option] <pid>
options参数解释:no options 输出所有的系统属性和参数
- -flag 打印指定名称的参数
- -flag [+|-] 打开或关闭参数
- flag = 设置参数
- -flags 打印所有参数
- -sysprops 打印系统配置
命令格式:
jstat [option] VMID [interval] [count ]
其中VMID是进程id,interval是打印间隔时间(毫秒),count是打印次数(默认一直打印)
option参数解释:
- -class class loader的行为统计
- -compiler HotSpt JIT编译器行为统计
- -gc 垃圾回收堆的行为统计
- -gccapacity 各个垃圾回收代容量(young,old,perm)和他们相应的空间统计
- -gcutil 垃圾回收统计概述
- -gccause 垃圾收集统计概述(同-gcutil),附加最近两次垃圾回收事件的原因
- -gcnew 新生代行为统计
- -gcnewcapacity 新生代与其相应的内存空间的统计
- -gcold 年老代和永生代行为统计
- -gcoldcapacity 年老代行为统计
- -printcompilation HotSpot编译方法统计
命令格式:
jstack [options] option
参数解释:- -F 当使用jstack 无响应时,强制输出线程堆栈 。
- -m 同时输出java堆栈和c/c++堆栈信息(混合模式)
- -l 除了输出堆栈信息外,还显示关于锁的附加信息
1.使用Process Explorer工具找到cpu占用率较高的线程
2.在thread卡中找到cpu占用高的线程id
3.线程id转换成16进制
4.使用jstack -l 查看进程的线程快照
5.线程快照中找到指定线程,并分析代码
五、jmapjmap可以生成 java 程序的 dump 文件,也可以查看堆内对象示例的统计信息、查看 ClassLoader 的信息以及 finalizer 队列 。
命令格式:
jmap [option] (连接正在执行的进程)
option参数解释:
如果使用不带选项参数的jmap打印共享对象映射,将会打印目标虚拟机中加载的每个共享对象的起始 地址、 映射大小以及共享对象文件的路径全称 。
- -heap 打印java heap摘要
- -histo[:live] 打印堆中的java对象统计信息
- -clstats 打印类加载器统计信息
- -finalizerinfo 打印在f-queue中等待执行finalizer方法的对象
推荐阅读
- C# 语法糖之聊聊 Span 的底层玩法
- 一文吃透JVM分代回收机制
- Oracle数据库分区技术:优化大型数据集的存储效率!
- 聊聊分库分表的四种方案
- Nginx的HTTPS部署与安全性能优化
- Oracle数据库初始化参数解析:优化系统配置的终极指南!
- React请求机制优化思路
- SEO网站优化的方法
- seo怎么优化步骤 seo怎么优化
- 搜索引擎优化方法与技巧 搜索引擎优化方法