成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Tomcat調(diào)優(yōu)筆記

nanchen2251 / 2200人閱讀

摘要:在利用收集了兩次的相關(guān)數(shù)據(jù),發(fā)現(xiàn)這和的存在關(guān)系,圖表如下在第一次的前期,動(dòng)作比較多,此時(shí)的吞吐量一直維持在比較低的水平。第二次幾乎沒(méi)有的動(dòng)作,此時(shí)的吞吐量一直維持在比較高的水平。

本文是在Tomcat調(diào)優(yōu)過(guò)程中得到的心得(會(huì)持續(xù)更新),相關(guān)環(huán)境:

java version "1.8.0_131"

Tomcat 8.5.14

Jmeter 3.1

Jmeter參數(shù):

300線程

1000循環(huán)

URL:http://localhost:8080/

Tomcat server.xml參數(shù):

protocol="org.apache.coyote.http11.Http11Nio2Protocol"

acceptCount="5000"

maxConnections="20000"

Tomcat JVM參數(shù):-server -Xms4g -Xmx4g

JIT的介入

Tomcat server.xml都保持默認(rèn)值。

在不重啟Tomcat的情況下,兩次benchmark得到的throughput數(shù)據(jù)相差較大:

第一次:9000/s

第二次:17000/s

這也就說(shuō)明,在Tomcat存在warmup機(jī)制,性能表現(xiàn)在warmup之后會(huì)更好。

在利用jvisualvm收集了兩次benchmark的相關(guān)數(shù)據(jù),發(fā)現(xiàn)這和JDK的compilerThread存在關(guān)系,圖表如下:

在第一次benchmark的前期,compilerThread動(dòng)作比較多,此時(shí)NIO的吞吐量一直維持在比較低的水平。在第一次benchmark后期,compilerThread降下來(lái)了,NIO的吞吐量就上去了。

第二次benchmark幾乎沒(méi)有compilerThread的動(dòng)作,此時(shí)NIO的吞吐量一直維持在比較高的水平。

在經(jīng)過(guò)一番調(diào)查之后,發(fā)現(xiàn)這是由于JIT對(duì)代碼做優(yōu)化,JIT會(huì)將頻繁執(zhí)行的代碼的bytecode編譯成native code,從而加快執(zhí)行速度。參考文章如下:

Java on Steroids: 5 Super Useful JIT Optimization Techniques

A close look at Java’s JIT: Don’t Waste Your Time on Local Optimizations

The Java JIT Compiler is Darn Good at Optimization

maxThreads

根據(jù)Tomcat文檔的說(shuō)法,此參數(shù)決定了同時(shí)最多能夠處理多少請(qǐng)求,默認(rèn)值是200。而我們的Jmeter腳本是300并發(fā),顯然不夠,所以調(diào)整server.xml追加Connector參數(shù):

maxThreads="500"
minSpareThreads="500"

這么配置是提高Tomcat處理線程數(shù),maxThreadsminSpareThreads設(shè)置為一樣是讓Tomcat在啟動(dòng)時(shí)就創(chuàng)建1000線程,這個(gè)和把JVM參數(shù)-Xms、-Xmx設(shè)置為一樣是一個(gè)道理。

在不重啟Tomcat的情況下,兩次benchmark得到的throughput數(shù)據(jù):

第一次:12000/s

第二次:17000/s

這說(shuō)明在沒(méi)有warmup的情況下,maxThreads的提升能夠提升Tomcat的性能表現(xiàn)。

關(guān)于maxThreads應(yīng)該設(shè)置多少為合適可以見(jiàn)SO的這個(gè)回答:

How to determine the best number of threads in Tomcat?

processorCache

processorCache控制Tomcat內(nèi)部RequestProcessor的緩存池大小,當(dāng)并發(fā)量大于此值時(shí),Tomcat會(huì)創(chuàng)建新的RequestProcessor實(shí)例,如果并發(fā)量持續(xù)大于此值,則會(huì)持續(xù)創(chuàng)建RequestProcessor實(shí)例。

在這次壓力測(cè)試過(guò)程中,發(fā)現(xiàn)如果processorCache=100時(shí),Tomcat只會(huì)保留100個(gè)RequestProcessor,并且會(huì)不斷創(chuàng)建其實(shí)例。見(jiàn)下圖:

如果processorCache=400,則Tomcat會(huì)保留300個(gè)RequestProcessor,并且不會(huì)創(chuàng)建新的實(shí)例,主要是因?yàn)镴meter的線程數(shù)為300,也就是說(shuō)同時(shí)最多只會(huì)有300個(gè)connection,每個(gè)connection對(duì)應(yīng)一個(gè)RequestProcessor。

從測(cè)試結(jié)果上看,processorCache=100時(shí)似乎并不影響測(cè)試結(jié)果。

gzip壓縮

和gzip壓縮相關(guān)的參數(shù)有:compressioncompressibleMimeType 、compressionMinSize ,Tomcat默認(rèn)是關(guān)閉gzip壓縮的,gzip壓縮能夠顯著降低帶寬。

以下是在warmup之后的benchmark結(jié)果,開(kāi)啟gzip能得到17%的性能提升:

compression="on":17073.6/s

compression="off":14548.3/s

但是在benchmark多次之后,發(fā)現(xiàn)開(kāi)啟和不開(kāi)啟的結(jié)果相近。

參考文檔

So You Want High Performance

Tuning Tomcat For A High Throughput, Fail Fast System

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/70008.html

相關(guān)文章

  • 做了5年的Android,我轉(zhuǎn)Java后臺(tái)了!

    摘要:很多人做開(kāi)發(fā),年后,都會(huì)感覺(jué)自己遇到瓶頸。公司的工作節(jié)奏又比較快,難有機(jī)會(huì)學(xué)習(xí)架構(gòu)原理,也沒(méi)人教,所以這個(gè)時(shí)候,學(xué)習(xí)架構(gòu)原理,擴(kuò)展思維,對(duì)自己以后職業(yè)生涯尤為重要。 很多人做Java開(kāi)發(fā)4,5年后,都會(huì)感覺(jué)自己遇到瓶頸。什么都會(huì)又什么都不會(huì),如何改變困境,為什么很多人寫(xiě)了7,8年還是一個(gè)碼農(nóng),工作中太多被動(dòng)是因?yàn)椴欢讓釉?。公司的工作?jié)奏又比較快,難有機(jī)會(huì)學(xué)習(xí)架構(gòu)原理,也沒(méi)人教,所以...

    shiweifu 評(píng)論0 收藏0
  • JVM調(diào)優(yōu)前戲之JDK命令行工具---jstack

    摘要:用于生成虛擬機(jī)當(dāng)前時(shí)刻的線程快照。線程快照就是當(dāng)前虛擬機(jī)內(nèi)每一條線程正在執(zhí)行的方法堆棧的集合,生成線程快照的主要目的就是定位線程出現(xiàn)長(zhǎng)時(shí)間停頓的原因,如線程死鎖死循環(huán)請(qǐng)求外部資源導(dǎo)致的長(zhǎng)時(shí)間等待等都是導(dǎo)致線程長(zhǎng)時(shí)間停頓的常見(jiàn)原因。 在JDK的命令行中,一般開(kāi)發(fā)人員最耳熟能詳?shù)目隙ň褪莏ava,javac,javap等常用命令,不過(guò)在jdk/bin下還有許多其他的命令行工具,它們被用來(lái)監(jiān)...

    Cristic 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<