jvm xmn,jvm怎么调优

1、jps查看应用流程

2、jinfo -flags pid查询一次分配的参数

3、jstat

查看类装载信息

jstat -class PID 1000 10检查某个java进程的类装载信息,并每1000毫秒输出10次

查看垃圾收集信息

jstat -gc PID 1000 10

4、jstack

查看线程堆栈信息

jstack PID

5、jmap

生成堆快照

jmap -heap PID

dump堆内存相关信息

jmap -dump:format=b,file=heap.hprof PID

jvm在设置参数后自动生成dump文件。 不需要手动生成。

– xx : heapdumponoutofmemoryerror-xx : heap dump path=heap.hprof

常用分析工具:

1、jconsole

2、jvisualvm

3、arthas

arthas常规命令:

version:确定arthas的版本号

查看help:命名帮助信息

cls:清晰画面

session:显示当前会话信息

quit:将退出arthas客户端

dashboard:当前进程的动态数据面板

thread:当前JVM的线程堆栈信息

jvm:显示当前JVM的信息

sysprop:显示JVM的系统属性

sc:显示JVM加载的类信息

dump:dump已将类的byte代码加载到特定目录中

jad:逆编译已加载类的源代码

使用monitor:方法进行监视

基于watch:方法的数据观测

在trace:方法内部调用路径并输出方法路径上的每个节点需要很长时间

stack:输出调用当前方法的调用路径

.

4、MAT文件分析工具

5、gc日志分析

– xx : printgcdetails-xx : printgctimestamps-xx : printgcdatestamps-xlog GC : GC.log

gc日志分析工具:

在线: http://gceasy.io

脱机: GC查看器

1、cpu占有率高时,如何排出

1) top命令定位过程

)2) top -Hp PID查看进程中每个线程的cpu使用情况。 范例:顶级惠普1893

)3)例如,在1893进程中,4519个线程的cpu使用率很高

将线程4519转换为十六进制打印% x 4519 —— 11a 7

然后使用jstack命令检查堆栈信息

sudo-uadmin jstack 1893|grep-a 20011 a 7

)3)识别代码,分析问题。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注