jvm常用指令

jps(java process Status Tool)

Java版的ps命令,查看java进程及其相关的信息,如果你想找到一个java进程的pid,那可以用jps命令替代linux中的ps命令了,简单而方便

-l : 显示进程id,显示主类全名或jar路径
-q : 显示进程id
-m : 显示进程id, 显示JVM启动时传递给main()的参数 -v : 显示进程id,显示JVM启动时显示指定的JVM参数

jinfo

jinfo是用来查看JVM参数和动态修改部分JVM参数的命令

no options 输出所有的系统属性和参数 -flag 打印指定名称的参数
-flag [+|-] 打开或关闭参数

-flag = 设置参数
-flags 打印所有参数 -sysprops 打印系统配置

jstat

jstat命令是使用频率比较高的命令,主要用来查看JVM运行时的状态信息,包括内存状态、垃圾回收等

jstat [option] VMID [interval] [count ] 其中VMID是进程id,interval是打印间隔时间(毫秒),count是打印次数(默认一直打印)

-class class loader的行为统计

-compiler HotSpt JIT编译器行为统计
-gc 垃圾回收堆的行为统计
-gccapacity 各个垃圾回收代容量(young,old,perm)和他们相应的空间统计 -gcutil 垃圾回收统计概述
-gccause 垃圾收集统计概述(同-gcutil),附加最近两次垃圾回收事件的原因 -gcnew 新生代行为统计
-gcnewcapacity 新生代与其相应的内存空间的统计
-gcold 年老代和永生代行为统计
-gcoldcapacity 年老代行为统计
-printcompilation HotSpot编译方法统计

jstack

jstack是用来查看JVM线程快照的命令,线程快照是当前JVM线程正在执行的方法堆栈集合。使用jstack命令可以定位线程出现长时间卡顿的原因,例如死锁,死循环等。jstack还可以查看程序崩溃时生成的core文件中的stack信息

-F 当使用jstack 无响应时,强制输出线程堆栈。

-m 同时输出java堆栈和c/c++堆栈信息(混合模式)

-l 除了输出堆栈信息外,还显示关于锁的附加信息

cpu占用过高问题

1.使用Process Explorer工具找到cpu占用率较高的线程

2.在thread卡中找到cpu占用高的线程id

3.线程id转换成16进制
4.使用jstack -l 查看进程的线程快照

5.线程快照中找到指定线程,并分析代码

jmap

jmap可以生成 java程序的dump 文件,也可以查看堆内对象示例的统计信息、查看ClassLoader 的信息以及finalizer队列

-heap 打印java heap摘要
-histo[:live] 打印堆中的java对象统计信息

-clstats 打印类加载器统计信息
-finalizerinfo 打印在f-queue中等待执行finalizer方法的对象 -dump: 生成java堆的dump文件

dump-options:
live 只转储存活的对象,如果没有指定则转储所有对象 format=b 二进制格式
file= 转储文件到

jhat

jhat是用来分析jmap生成dump文件的命令,jhat内置了应用服务器,可以通过网页查看dump文件分析结果,jhat一般是用在离线分析上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值