JVM调优--概述

JVM调优总结

HotSpot Heap结构

JVM调优绕不过的人

Jon Masamitsu

https://blogs.oracle.com/jonthecollector

【1】is NewRatio or it’s equivalent. Number 1 would be the total heap size. And just so the guys down the hall don’t start throwing rocks at me, the 0-th most important GC tuning knob is the choice of the type of garbage collector itself. But let’s talk about number 2.

GC 最重要三个选项

Ø 选择合适的GC Collector

Ø JVM Heap大小

Ø Young generation占JVM Heap的比重

GC Collectors

注意:上图中有连线的gc collector 才可以配合使用(上图的6类GC Collector 开启详见 附录1)

Serial:最简单的collector,只有一个thread负责GC,并且,在执行GC的时候,会暂停整个程序(所谓的“stop-the-world”)

Parallel Scavenge: 和Serial相比,它的特点在于使用multi-thread来处理GC,当然,在执行的时候,仍然会“stop-the-world”,好处在于,暂停的时间也许更短

ParNew: 它基本上和Parallel Scavenge非常相似,唯一的区别,在于它做了强化能够和CMS一起使用

Serial Old:单线程,采用的是mark-sweep-compact回收方法,与Serial类似

Parallel Old:多线程的GC collector

CMS: 全称“concurrent-mark-sweep”,它是最并发,暂停时间最低的collector,之所以称为concurrent,是因为它在执行GC任务的时候,GC thread是和application thread一起工作的,基本上不需要暂停application thread

GC触发时机

YGC:eden空间不足

Comments

gavin: 你还搞java?

CT: 那是LOL