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:HeapDumpPath=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 code到特定目录

jad:反编译指定已加载类的源码

monitor:方法执行监控

watch:方法执行数据观测

trace:方法内部调用路径,并输出方法路径上的每个节点上耗时

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

......
4、MAT 对文件分析工具
5、gc日志分析
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xloggc:gc.log

gc日志分析工具:
在线:http://gceasy.io
离线:GCViewer

原文地址:https://www.cnblogs.com/sunny-miss/p/12057610.html

时间: 2024-08-02 04:33:24

jvm调优的基本步骤的相关文章

JVM调优之选择步骤

1. 选择JVM运行模式 a. Client模式:启动快,占用内存少,JIT编译器生成代码的速度也更快. b. Server模式:提供了更复杂的生成代码优化功能,这个功能对服务器应用而言尤其重要.大多数Server模式的JIT的编译优化都要消耗额外的时间以收集更多的应用程序行为信息,为应用程序运行生成更优的代码. c. Tiered Server模式:结合Client和Server运行模式的长处,即快速启动和高效的生成码.  -server -xx:+Tieredcompilation命令.可取

JVM调优经验分享

前言 一.JVM调优知识背景简介 二.JVM调优参数简介 三.JVM调优目标 四.JVM调优经验 结束语 <br/> 本次分享探讨的JVM调优是指server端运行的JVM调优,适应版本为[1.6– 1.7], 不涉及最新的1.8版本. 假设线程池.连接池.程序代码等都已经做过优化,效果(系统吞吐量.响应性能)仍然不理想,我们就可以考虑JVM调优了. <br/> 一. JVM调优知识背景简介 1.堆与栈的概念 堆和栈是程序运行的关键:栈是运行时的单位,而堆是存储的单位. 栈解决程序

jvm调优小结

不区分tomcat,resion等应用,主要是针对jvm调优 tomcat家目录下catalina.sh  catalina.bat 从http://unixboy.iteye.com/blog/174173 http://my.oschina.net/shootercn/blog/15393这个更详细 http://www.360doc.com/content/15/0429/15/7853380_466822446.shtml详细讲解-XX:ParallelGCThreads 学到了很多东西

JVM调优知识

一.Java应用服务器 Tomcat.Nginx.Resin.等多种应用服务器,虽然JVM做为容器,提供的是一个Java Web的运行时环境,以支持Servlet/JSP等等这些内容的运行但是我们都很清楚,其本质上是还是一个Java应用程序.现在有哪些java应用服务器呢?商业的有BEA Weblogic Server.IBM Websphere Application Server.Oracle Application Server.Sybase EAServer.免费开源的java应用服务器

JVM调优[转]

JVM调优总结-序 几年前写过一篇关于JVM调优的文章,前段时间拿出来看了看,又添加了一些东西.突然发现,基础真的很重要.学习的过程是一个由表及里,再由里及表的过程.呵呵,所谓的"温故而知新".而真正能走完这个轮回的人,也就能称为大牛或专家了.这个过程可能来来回回,这就是所谓"螺旋上升",而每一次轮回都有新的发现. 这回添加的东西主要集中在基础的一些问题上,还有一些这两年思考的问题.这些问题可能平时我们不会刻意去想,但是真正看清楚了,却发现还是大有裨益的:)希望对大

JVM调优(二)经验参数设置

调优设置具体解析 堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制.32位系统下,一般限制在1.5G~2G:64为操作系统对内存无限制. 在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m. 典型设置: java -Xmx3550m -Xms3550m -Xmn2g -Xss128k  -Xms3550m:设置JVM最大可用堆内存为355

JVM调优(一)——参数查询和问题排查

JVM的参数类型 标准参数 -help -server -client -version -showversion -cp -classpath X参数 -Xint: 解释执行 -Xcomp:第一次使用就编译成本地代码 -Xmixed:混合模式,JVM自己来决定是否编译成本地代码 XX参数 特点 非标准化参数 相对不稳定 主要用于JVM调优和Debug 分类 Boolean类型 格式:-XX:[+-]<name>表示启用或禁用name属性 比如: -XX:+UseConcMarkSweepGC

JVM调优-新生代

JAVA虚拟机新生代,包括eden space+2个survivor空间. 新生代用来存放新近创建的对象,新生代的特点是对象更新速度快,在短时间内产生大量的"死亡对象".对年轻代的垃圾回收称作次级回收 (minor gc) 1.新生代与次级回收 新生代分为三个区域,  一个eden spac , 2个大小相同的survivor,  应用程序只能使用一个eden和一个survivor, 当发生初级垃圾回收的时候,gc挂起程序, 然后将eden和survivorA中的存活对象复制到另外一个

JVM调优

转自:http://blog.csdn.net/chen77716/article/details/5695893 一.JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将内存划分为: New(年轻代) Tenured(年老代) 永久代(Perm) 其中New和Tenured属于堆内存,堆内存会从JVM启动参数(-Xmx:3G)指定的内存中分配,Perm不属于堆内存,有虚拟机直接分配,但可以通过-XX:PermSize -XX:MaxPermSize 等参数调整其大小. 年轻代(N