一羽历、JVM
參數(shù) | 作用 | 建議 |
---|---|---|
-server | 以服務(wù)端的模式運(yùn)行 | 建議開(kāi)啟 |
-Xms | 最小堆內(nèi)存炼团, | 和-Xmx設(shè)置相同 |
-Xmx | 最大內(nèi)存 | 建議可用內(nèi)存的80% |
-XX:MetaspaceSize | 元空間初始值 | |
-XX:MaxMetaspaceSize | 元空間最大內(nèi)存 | 默認(rèn)無(wú)限 |
-XX:NeaRatio | 年輕代和老年代大小的壁紙锌俱,取值整數(shù),默認(rèn)是2 | 不要改 |
-XX:SurvivorRatio | Eden區(qū)Survivor區(qū)大小的比值诫龙,取值為整數(shù)分尸,默認(rèn)是8 | 不改 |
二伶选、垃圾回收策略
指標(biāo):
1. 吞吐量:工作時(shí)間占總時(shí)間的百分比
2. 暫停時(shí)間:有垃圾回收導(dǎo)致的應(yīng)用停止相應(yīng)次數(shù)/時(shí)間
垃圾收集器:
1. 串行收集器(SerialCollector):?jiǎn)尉€程執(zhí)行所有的垃圾回收工作,適用于單核CPU服務(wù)器
2. 并行收集器(ParallelCollector): 吞吐量收集器關(guān)注吞吐量吐绵,并行的方式執(zhí)行年輕代的垃圾回收纹笼,降低垃圾回收的開(kāi)銷適用于多處理器或多線程硬件上運(yùn)行的數(shù)據(jù)量較大的應(yīng)用:工作線程在GC的 時(shí)候也會(huì)等待
3. 并發(fā)收集器(ConcurrentCollector):鬢發(fā)的方式執(zhí)行大部分垃圾回收工作件已,縮短垃圾回收?暫停時(shí)間 工作線程和GC線程可以同時(shí)執(zhí)行,但是不一定并行,也可能會(huì)交替進(jìn)行掏导,
4. GMS收集器值纱,并發(fā)收集器中的一種 并發(fā)標(biāo)記清除收集器
5. G1收集器 適用于大容量?jī)?nèi)存的多喝服務(wù)器,滿足垃圾回收展廳時(shí)間目標(biāo)的同時(shí)咱筛,以最大的可能性實(shí)現(xiàn)高吞吐量(1.9之后是默認(rèn)的垃圾回收)
參數(shù)
參 | 描述 |
---|---|
-XX:+UseSerialGC | 啟?串?收集器 |
-XX:+UseParallelGC | 啟?并?垃圾收集器饲趋,配置了該選項(xiàng),那么 -XX:+UseParallelOldGC默認(rèn)啟? |
-XX:+UseParNewGC | 年輕代采?并?收集器,如果設(shè)置了 -XX:+UseConcMarkSweepGC選項(xiàng),?動(dòng)啟? |
-XX:ParallelGCThreads | 年輕代及?年代垃圾回收使?的線程數(shù)。默認(rèn)值依賴于JVM使?的CPU個(gè) |
-XX:+UseConcMarkSweepGC(CMS) | 對(duì)于?年代,啟?CMS垃圾收集器。 當(dāng)并?收集器?法滿?應(yīng)?的延遲需求是,推薦使?CMS或G1收集器。啟?該選項(xiàng)后, -XX:+UseParNewGC?動(dòng)啟? |
-XX:+UseG1GC | 啟?G1收集器斋陪。 G1是服務(wù)器類型的收集器, ?于多核构拳、?內(nèi)存的機(jī)器。它在保持?吞吐量的情況下呛凶,?概率滿?GC暫停時(shí)間的?標(biāo) |
三建瘫、tomcat調(diào)優(yōu)
tomcat自身相關(guān)的調(diào)優(yōu)
調(diào)整tomcat的線程池
-
調(diào)整tomcat的連機(jī)器
參數(shù) 說(shuō)明 maxConnections 最?連接數(shù)粒梦,當(dāng)?shù)竭_(dá)該值后昼蛀,服務(wù)器接收但不會(huì)處理更多的請(qǐng)求沦辙, 額外的請(qǐng)求將會(huì)阻塞直到連接數(shù)低于maxConnections 。可通過(guò)ulimit -a 查看服務(wù)器限制。對(duì)于CPU要求更?(計(jì)算密集型)時(shí),建議不要配置過(guò)? ; 對(duì)于CPU要求不是特別?時(shí),建議配置在2000左右(受服務(wù)器性能影響)恭陡。 當(dāng)然這個(gè)需要服務(wù)器硬件的?持 maxThreads 最?線程數(shù),需要根據(jù)服務(wù)器的硬件情況拴疤,進(jìn)??個(gè)合理的設(shè)置 acceptCount 最?排隊(duì)等待數(shù),當(dāng)服務(wù)器接收的請(qǐng)求數(shù)量到達(dá)maxConnections 蜒犯,此時(shí)Tomcat會(huì)將后?的請(qǐng)求淘菩,存放在任務(wù)隊(duì)列中進(jìn)?排序, acceptCount指的就是任務(wù)隊(duì)列中排隊(duì)等待的請(qǐng)求數(shù) 脏答。 ?臺(tái)Tomcat的最?的請(qǐng)求處理數(shù)量是maxConnections+acceptCount 禁用AJP連接器
-
調(diào)整IO模式
- Tomcat8之前的版本默認(rèn)使?BIO(阻塞式IO)以蕴,對(duì)于每?個(gè)請(qǐng)求都要?jiǎng)?chuàng)建?個(gè)線程來(lái)處理赡磅,不適合?并發(fā)冶匹;Tomcat8以后的版本默認(rèn)使?NIO模式(?阻塞式IO)
- 修改protpcol修改即可