jvm调优记录

天涯浪子 提交于 2020-02-28 05:50:47

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文件最后)

注意:

注意如果Dump⽂文件太⼤大,可能需要加上-J-Xmx512m这种参数指定最⼤大堆内存,即jhat -J-Xmx512m -port 9998 /tmp/dump.dat。然后就可以在浏览器中输⼊入主机地址:9998查看

参考:jhat使用

jstack:

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

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

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

参考:cpu飙高的检查步骤

jinfo:

jinfo命令

 

线上jvm调优

jvm调优

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!