1.堆的回顧
堆.png
2.串行收集器
- 最古老,最穩(wěn)定
- 效率高
- 可能會(huì)產(chǎn)生較長(zhǎng)的停頓
- -XX:+UseSerialGC
- 新生代、老年代使用串行回收
- 新生代復(fù)制算法
- 老年代標(biāo)記-壓縮
串行收集器.png
3.并行收集器
-
ParNew
- -XX:+UseParNewGC
- 新生代并行
- 老年代串行
- Serial收集器新生代的并行版本
- 復(fù)制算法
- 多線程,需要多核支持
- -XX:ParallelGCThreads限制線程數(shù)量
并行收集器1.png - -XX:+UseParNewGC
-
Parallel收集器
- 類似ParNew
- 新生代復(fù)制算法
- 老年代標(biāo)記-壓縮
- 更加關(guān)注吞吐量
- -XX:+UseParallelGC
- 使用Parallel收集器+老年代串行
- -XX:+UseParallelOldGC
- 使用Parallel收集器+老年代并行
并行收集器2.png- -XX:MaxGCPauseMills
- 最大停頓時(shí)間,單位毫秒
- GC盡力保證回收時(shí)間不超過(guò)設(shè)定值
- -XX:GCTimeRatio
- 0-100的取值范圍
- 垃圾收集時(shí)間占總時(shí)間的比
- 默認(rèn)99,即最大允許1%時(shí)間做GC
- 這兩個(gè)參數(shù)是矛盾的。因?yàn)橥nD時(shí)間和吞吐量不可能同時(shí)調(diào)優(yōu)
4.CMS收集器
-
CMS收集器
- Concurrent Mark Sweep并發(fā)標(biāo)記清除
- 標(biāo)記-清除算法
- 與標(biāo)記-壓縮相比
- 并發(fā)階段會(huì)降低吞吐量
- 老年代收集器(新生代使用ParNew)
- -XX:+UseConcMarkSweepGC
-
CMS運(yùn)行過(guò)程比較復(fù)雜,著重實(shí)現(xiàn)了標(biāo)記的過(guò)程,可分為
- 初始標(biāo)記
- 根可以直接關(guān)聯(lián)到的對(duì)象
- 速度快
- 并發(fā)標(biāo)記(和用戶線程一起)
- 主要標(biāo)記過(guò)程,標(biāo)記全部對(duì)象
- 重新標(biāo)記
- 由于并發(fā)標(biāo)記時(shí),用戶線程依然運(yùn)行,因此在正式清理前,再做修正
- 并發(fā)清除
- 基于標(biāo)記結(jié)束,直接清理對(duì)象
CMS收集器.png - 初始標(biāo)記
-
特點(diǎn)
- 盡可能降低停頓
- 會(huì)影響系統(tǒng)整體吞吐量和性能
- 比如,在用戶線程運(yùn)行過(guò)程中,分一半CPU去做GC,系統(tǒng)性能在GC階段,反應(yīng)速度就下降一半
- 清理不徹底
- 因?yàn)樵谇謇黼A段,用戶線程還在運(yùn)行,會(huì)產(chǎn)生新的垃圾,無(wú)法清理
- 因?yàn)楹陀脩艟€程一起運(yùn)行,不能在空間快滿時(shí)再清理
- -XX:CMSInitiatingOccupancyFraction設(shè)置觸發(fā)GC的閾值
- 如果不幸內(nèi)存預(yù)留空間不夠,就會(huì)引起concurrent mode failure
清除與壓縮比較.png -
-XX:UseCMSCompactAtFullCollection Full GC后,進(jìn)行一次整理
- 整理過(guò)程是獨(dú)占的,會(huì)引起停頓時(shí)間變長(zhǎng)
-
-XX:+CMSFullGCsBeforeCompaction
- 設(shè)置進(jìn)行幾次Full GC后,進(jìn)行一次碎片整理
-
-XX:ParallelCMSThreads
- 設(shè)定CMS的線程數(shù)量
5.GC參數(shù)整理
GC參數(shù)整理1.png
GC參數(shù)整理2.png
6.Tomcat實(shí)例
- 環(huán)境
- Tomcat 7
- JSP網(wǎng)站
- 測(cè)試網(wǎng)站吞吐量和延時(shí)
- 工具
- JMeter
- 目的
- 讓Tomcat有一個(gè)不錯(cuò)的吞吐量
Tomcat實(shí)例1.png
Tomcat實(shí)例2.png
Tomcat實(shí)例3.png
Tomcat實(shí)例4.png
Tomcat實(shí)例5.png
Tomcat實(shí)例6.png
Tomcat實(shí)例7.png
Tomcat實(shí)例8.png
Tomcat實(shí)例9.png
Tomcat實(shí)例10.png
Tomcat實(shí)例11.png


















