JVM性能

目录

常见配置 

回收机制

Jvm监控工具


常见配置 


堆设置
-Xms:初始堆大小
-Xmx:最大堆大小
-XX:NewSize=n:设置年轻代大小
-XX:NewRatio=n:设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4
-XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:3,表示Eden:Survivor=3:2,一个Survivor区占整个年轻代的1/5
-XX:MaxPermSize=n:设置持久代大小

收集器设置
-XX:+UseSerialGC:设置串行收集器
-XX:+UseParallelGC:设置并行收集器
-XX:+UseParalledlOldGC:设置并行年老代收集器
-XX:+UseConcMarkSweepGC:设置并发收集器

垃圾回收统计信息
-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-Xloggc:filename

并行收集器设置
-XX:ParallelGCThreads=n:设置并行收集器收集时使用的CPU数。并行收集线程数。
-XX:MaxGCPauseMillis=n:设置并行收集最大暂停时间
-XX:GCTimeRatio=n:设置垃圾回收时间占程序运行时间的百分比。公式为1/(1+n)

并发收集器设置
-XX:+CMSIncrementalMode:设置为增量模式。适用于单CPU情况。
-XX:ParallelGCThreads=n:设置并发收集器年轻代收集方式为并行收集时,使用的CPU数。并行收集线程数。

回收机制

年轻代(Young Generation) 年老代(Old Generation) 持久代(Permanent Generation)

年轻代包括(一个Eden区,两个Survivor区:对称没先后关系)

  1. 大部分对象在Eden区中生成,
  2. Eden区满时,还存活的对象将被复制到Survivor区
  3. 第一个Survivor区满时,此区的存活对象将被复制到另外一个Survivor区
  4. 第二个Survivor区也满时,Survivor区复制过来的并且此时还存活的对象,将被复制“年老区(Tenured)”

年老代 在年轻代中经历了N次垃圾回收后仍然存活的对象,就会被放到年老代中。因此年老代中存放的都是一些生命周期较长的对象

持久代 存放静态文件,如今Java类、方法等。持久代对垃圾回收没有显著影响

GC有两种类型:Scavenge GC和Full GC。

Scavenge GC  //清理年轻代
新对象生成,并且在年轻代的Eden区申请空间失败时,就会触发Scavenge GC对Eden区域进行GC,清除非存活对象。不会影响到年老代


Full GC    //清理年老代
对整个堆进行整理,比Scavenge GC要慢,因此应该尽可能减少Full GC的次数。在对JVM调优的过程中,很大一部分工作就是对于FullGC的调节。有如下原因可能导致Full GC:
· 年老代(Tenured)被写满
· 持久代(Perm)被写满 
· System.gc()被显示调用 
· 上一次GC之后Heap的各域分配策略动态变化

Jvm监控工具

JDK自带一些工具,如Jstack , jmap ,


jstack , 输出的线程信息主要包括:jvm自身线程、用户线程等。

jvm线程会在jvm启动时就会存在。对于用户线程则是在用户访问时才会生成。 

jstack <pid>,用于打印指定Java进程的线程堆栈信息。


jmap , 打印Java进程的共享对象内存映射或堆内存细节

jmap -histo <pid>     展示class的内存情况

jmap -histo:live <pid>     先触发gc,然后再统计信息

jmap -dump:format=b,file=<filename>  <pid>    将进程的内存heap输出出到filename文件里,再配合内存分析工具MAT或与jhat使用,能够以图像的形式直观的展示当前内存是否有问题

 

Dump文件是Java堆使用情况的内存镜像。主要包括系统信息、虚拟机属性、完整的线程Dump、所有类和对象的状态等

怀疑有内存泄漏的时候就可以制作Dump来查看具体情况

每一个java虚拟机都有及时生成显示所有线程在某一点状态的线程dump的能力

JVM中的许多问题都可以使用线程dump文件来进行诊断,其中比较典型的包括线程阻塞,CPU使用率过高,JVM Crash,堆内存不足和类装载等问题。 

猜你喜欢

转载自blog.csdn.net/xyc1211/article/details/88594745