关于java:JVM性能调优

3次阅读

共计 1159 个字符,预计需要花费 3 分钟才能阅读完成。

  1. 查看利用

    jps -l | grep 'com.tplink.tply.TplyApplication'
  1. 实时查看和调整 JVM 配置参数
jinfo [option] pid

-no option 输入全副的参数和零碎属性
-flags 输入全副的参数
-sysprops 输入零碎属性
-flag name 输入对应名称的参数 

* 动静批改 jvm 运行参数

-flag [+|-]name 开启或者敞开对应名称的参数 (布尔类型参数)
-flag name=value 设定对应名称的参数(数字类型参数)

命令输入如:

Non-default VM flags: -XX:CICompilerCount=3 -XX:InitialHeapSize=1073741824 -XX:MaxHeapSize=2147483648 -XX:MaxNewSize=715653120 -XX:MinHeapDeltaBytes=262144 -XX:NewSize=357826560 -XX:OldSize=715915264 -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+UseParallelGC
Command line:  -Xms1g -Xmx2g -XX:+PrintGCDetails -XX:+PrintGCTimeStamps

其中,Non-default VM flags 是虚拟机默认设置的参数,Command line 是用户指定的参数,比方命令行启动 jar 时加上的参数



Non-default VM flags: -XX:CICompilerCount=4 -XX:InitialHeapSize=262144000 -XX:MaxHeapSize=4179623936 -XX:MaxNewSize=1393033216 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=87031808 -XX:OldSize=175112192 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC
  1. 查看 Java 过程内以后时刻的线程快照,用于定位线程进展、死锁等长时间期待的问题
    jstack pid

4. 查看给定过程、外围文件、近程调试服务器的共享对象内存映射和堆内存细节的工具,可查看堆应用状况、堆内对象直方图、加载类、生成堆快照等

jmap

5. 打印 JVM 堆概要信息,包含堆配置、新生代、老生代信息
jmap -heap pid

  1. jstat 虚拟机统计信息监督工具
jstat -gcutil pid 1000 20 --- 每隔 1s 输入统计信息(共 20 次)S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT
4.18   0.00  71.29   9.27  96.22  94.70     24    0.512     5    0.856    1.369
正文完
 0