JVM监控及诊断工具(命令行篇)

1. jps: 查看正在运行的Java进程

jps

8848 表示Jps本身的进程,11380表示idea的进程,820表示Launcher启动类进程 8492表示正在运行的ScannerTest Java进程

2. jstat: 查看JVM统计信息

jstat -class PID(监控Java进程)        

Loaded表示加载类的个数,Bytes表示加载类所占字节数

Unloaded表示卸载类的个数,Bytes表示卸载类所占字节数

Time表示花费的总体时间

jstat -class PID   interval  (持续监控,以毫秒为单位)

jstat -class PID   interval  count (指定查询次数)

jstat -compiler PID  (编译情况)

 

 jstat -compiler PID  (被编译的方法)

jstat -gc PID(GC情况)

s0C:s0区的容量        s1C:s1区的容量       s0U:s0区已使用的容量     s1U:s1区已使用的容量

EC:伊甸园区容量     EU:伊甸园区已使用容量     OC:老年代容量     OU:老年代已使用容量

MC:方法区容量    MU:方法区已使用容量   CCSC:压缩类容量  CCSU:压缩类已使用容量

YGC:发生youngGC次数  YGCT: youngGC花费时间  FGC:fullGC次数 FGCT:fullGC花费时间

CGC: 并发GC次数   CGCT:并发GC花费时间  GCT:GC花费总时间

jstat -gc -t PID interval  count

(持续观察GC情况,通过两次测量间隔和总GC时间增量,可计算出GC时间占运行时间的比例)

 (若OU呈上涨趋势,说明该Java程序的老年代内存使用量在不断上涨意味着无法回收的对象在不断增加,则可能存在内存泄漏)

 3. jinfo: 查看虚拟机配置参数信息,也可用于调整虚拟机配置参数

jinfo -sysprops PID (查看虚拟机配置参数信息)

jinfo -flags PID(查看当前进程曾经赋过值的一些参数)

jinfo -flag 具体参数 PID (查看具体参数的值)  

-PrintGCDetails表明该参数未被赋予

jinfo -flag +具体参数 PID(针对boolean类型的参数,可进行添加或删除)

 

+PrintGCDetails表明该参数被赋予

jinfo -flag 具体参数=具体参数值 PID(针对非boolean类型的参数,可进行修改)

MaxHeapFreeRatio被从100修改到90

4. jmap: 导出内存映像文件及内存使用情况

jmap -dump:format=b,file=[filename].hprof PID  (导出dump文件)

jmap -dump:live,format=b,file=[filename].hprof PID  (导出dump文件,只保留存活对象)

 

jmap -histo PID(输出堆中对象的统计信息,包括类、实例数量和合计容量)

5. jstack: 打印JVM中线程快照

jstack PID (记录各线程状态,并分析,当线程出现停顿时使用)

线程1,2是阻塞状态

分析出现死锁及原因

 6. jcmd: (多功能工具,用来实现上述除jstat之外所有命令功能)

jcmd -l (列出所有JVM进程) 

jcmd PID help (针对指定进程,列出所有支持的命令)

jcmd PID 具体命令 (针对指定进程,显示指令执行数据)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值