23°

jvm调优记录

Java JVM

查看java进程:

  1. ps -ef grep java
  2. jps -l (显示java进程的Id和软件名称)
  3. jps -lmv(显示java进程的Id和软件名称;显示启动main输入参数;虚拟机参数)

jmap:

  1. jmap -heap pid 查看进程堆内存使用情况,包括使用的GC算法、堆配置参数和各代中堆内存使用情况
  2. jmap -histo[:live] pid 查看堆内存中的对象数目、大小统计直方图,如果带上live则只统计活对象(这个命令执行,JVM会先触发gc,然后再统计信息)
  3. jmap -dump:format=b,file=dumpFileName jmap把进程内存使用情况dump到文件中,再用jhat分析查看

jmap命令详解:jmap命令详解

jstat:

  1. jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
  2. exp: jstat -gcutil pid 5000
  3. S0 Heap上的 Survivor space 0 区已使用空间的百分比
  4. S1 Heap上的 Survivor space 1 区已使用空间的百分比
  5. E Heap上的 Eden space 区已使用空间的百分比
  6. O Heap上的 Old space 区已使用空间的百分比
  7. P Perm space 区已使用空间的百分比
  8. YGC 从应用程序启动到采样时发生 Young GC 的次数
  9. YGCT 从应用程序启动到采样时 Young GC 所用的时间(单位秒)
  10. FGC 从应用程序启动到采样时发生 Full GC 的次数
  11. FGCT 从应用程序启动到采样时 Full GC 所用的时间(单位秒)
  12. GCT 从应用程序启动到采样时用于垃圾回收的总时间(单位秒)

jstat命令详解:jdk8下jstat命令详解

jhat:

  1. jhat [-stack <bool>] [-refs <bool>] [-port <port>] [-baseline <file>] [-debug <int>] [-version] [-h|-help] <file>
  2. exp: jhat -port 9988 dump.hprof
  3. browser: http://localhost:9988 (html文件最后)

参考:jhat使用

jstack:

jsatck -l 2020 > dump.txt:将2020进程信息dump到文件中

top -Hp 2020 :查询进程2020中的线程使用情况

printf "%x\n" 30437:将30437线程号转换为16进制

参考:cpu飙高的检查步骤

本文由【storylistener】发布于开源中国,原文链接:https://my.oschina.net/whling/blog/3159849

全部评论: 0

    我有话说: