Java生产环境下性能监控与调优详解(一)————JDK命令行工具的监控

引言

一个偶然的机会,让我决定深入了解下JVM调优。这个机会等我有机会再说。

JVM参数分类

  • 标准参数,例如-help、-server、-client、-version、-showversion、-cp、-classpath等相对稳定的命令。
  • X参数,它是非标准化参数。在各个版本的JVM中可能会有变化,但是变化比较小。例如-Xint:解释执行。-Xcomp:第一次使用就编译成本地代码。-Xmixed:混合模式,JVM自己来决定是否编译成本地代码。
  • XX参数,它是非标准化参数,相对不稳定主要用于JVM调优和Debug。XX参数又分为布尔类型 比如:-XX:[±]< name > 表示启用或者禁用某个属性。非布尔类型,类似于key-value类型,比如:
    -XX:< name >=< value > 表示设置了某个值。

注意:-Xms -Xmx 等实际上是-XX属性的缩写,所以是XX参数。
-Xms 等价于 -XX:InitialHeapSize -Xmx 等价于 -XX:MaxHeapSize

查看JVM运行时参数

  1. -XX:+PrintFlagslnitial 查看初始值
  2. -XX:+printFlagFinal 查看结束值(初始值被修改后就可以通过这个命令来查看)
  3. -XX:+UnlockExperimentalVMOptions 解锁实现参数
  4. -XX:+UnlockDiagnosticVMOptions 解锁诊断参数
  5. -XX:+PrintCommandLineFlags 打印命令行参数

一般使用方法是 java -XX:+PrintFlagslnitial -version
打印出来的结果有= 或者:=的 其中=表示初始默认 :=表示后来更改的。

JDK自带的工具介绍

  • jps(java process status)
    作用:用来查看所有的jvm进程,包括进程ID,进程启动的路径等。
    jps [ options ] [ hostid ]
    -q 只显示pid,不显示class名称,jar文件名和传递给main 方法的参数
    -m 输出传递给main 方法的参数,在嵌入式jvm上可能是null
    -l 输出应用程序main class的完整package名 或者 应用程序的jar文件完整路径名
    -v 输出传递给JVM的参数
    常用的是 jps -l 可以替代ps -ef|grep java
  • jinfo
    作用:负责观察进程运行环境参数,包括Java System属性和JVM命令行参数。当系统崩溃时,jinfo可以从core文件里面知道崩溃的Java应用程序的配置信息
    jinfo [ option ] pid
    no option 打印命令行参数和系统属性
    -flags 打印命令行参数
    -sysprops 打印系统属性
    -h 帮助
  • jstat 查看JVM统计信息(类加载信息,垃圾回收信息,JIT编译信息等)
    jinfo [ option ] pid
    -class 类加载信息
    -compiler JIT编译信息
    -gc 垃圾回收信息

GC的输出结果:
S0C,S1C,S0U,S1U:S0和S1的总量和使用量
EC,EU:EDEN区的总量与使用量
OC,OU:OLD区的总量与使用量
MC,MU:Metaspace区的总量与使用量
CCSC,CCSU:压缩类空间总量与使用量
YGC,YGCT:YoungGC的次数和时间
FGC,FGCT:FULLGC的次数和时间
GCT:总的GC时间

常用的是 jstat -gc 进程号 1000 10 表示 查看GC收集信息每1秒打印一次,一共打印10次

总结

这些最好在VM虚拟机上能够做一下,查看下命令的用途,加深一下印象。xia


作者:select you from me
来源:CSDN
转载请联系作者获得授权并注明出处。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值