JVM参数
- 标准参数(所有jvm都支持)
-X 非标准参数(不同jvm不同)
- XX 不稳定参数(下一版本可能取消)
JVM中的垃圾收集器
Serial Collector单线程串行执行GC(效率高,但吞吐量小)
Parallel Collector多线程并行GC(默认,效率高,吞吐量大,单处理器效率可能低,
停顿时间长)
Concurrent Mark Sweep并发GC,和应用线程同时执行(将内存分块,每个线程分块GC,标记清除,
停顿时间短)
G1并发GC(停顿短、并发大)
java对象分配
栈上分配(JVM默认开启栈上优化)
线程私有、小对象(方法结束栈清空不需要垃圾收集)
无逃逸(方法结束,对象消失。如果仍然有其它对象持有它的引用,说明逃逸了(作用域逃出了方法))
线程本地分配(分配在每个线程的工作内存,在eden区分配,但属于自己线程的专属空间)
占用eden 1%
自己线程所有,不用竞争加锁(分配速度快)
小对象
老年代分配(堆)
大对象
新生代eden分配(堆)
普通对象
常用参数
OOM异常的调优处理
··OOM异常后得到dump文件
··打开Virtual VM导入dump文件,发现byte[]数组占用了90.8%的堆空间,因此可以定位到相应代码进行修改
tomcat优化配置
配置文件:apache\apache-tomcat-7.0.73\bin\catalina.bat