優(yōu)秀網(wǎng)站設(shè)計(jì)欣賞圖片廣告策劃案優(yōu)秀案例
Tomcat調(diào)優(yōu)
優(yōu)化Tomcat內(nèi)存分配
調(diào)整Tomcat啟動(dòng)腳本contalina.sh,設(shè)置tomcat啟動(dòng)時(shí)分配的內(nèi)存很可使用的最大內(nèi)存;
CATALINA_OPTS
調(diào)整Tomcat線程池
Tomcat默認(rèn)使用的線程池:ThreadPoolExecutor
可以通過(guò)修改server.xml的 Connector 節(jié)點(diǎn)下的 maxThreads、minSpareThreads 和 acceptCount 參數(shù)來(lái)調(diào)整線程池的大小和性能。
情況舉例:
情況1:接受一個(gè)請(qǐng)求,此時(shí)tomcat起動(dòng)的線程數(shù)沒(méi)有到達(dá)maxThreads,tomcat會(huì)起動(dòng)一個(gè)線程來(lái)處理此請(qǐng)求。
情況2:接受一個(gè)請(qǐng)求,此時(shí)tomcat起動(dòng)的線程數(shù)已經(jīng)到達(dá)maxThreads,tomcat會(huì)把此請(qǐng)求放入等待隊(duì)列,等待空閑線程。
情況3:接受一個(gè)請(qǐng)求,此時(shí)tomcat起動(dòng)的線程數(shù)已經(jīng)到達(dá)maxThreads,等待隊(duì)列中的請(qǐng)求個(gè)數(shù)也達(dá)到了acceptCount,此時(shí)tomcat會(huì)直接拒絕此次請(qǐng)求,返回connection refused
maxThreads如何配置
1,計(jì)算型的任務(wù)多的話,減少線程數(shù)
2,io較多的,增加線程數(shù)
優(yōu)化tomcat緩存
可以通過(guò)調(diào)整 server.xml 中的 Connector 節(jié)點(diǎn)下的 enableLookups、maxKeepAliveRequests 和 keepAliveTimeout 等參數(shù)來(lái)優(yōu)化 Tomcat 的緩存設(shè)置,減少網(wǎng)絡(luò)連接的開銷。
配置文件模板:
配置tomcat內(nèi)存:
catalina.sh
#Make the umask available when using the org.apache.catalina.security.SecurityListenerJAVA_OPTS="-Xms512m -Xmx1024m -XX:MaxMetaspaceSize=256m -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"
配置線程數(shù),壓縮,緩存
server.xml
<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"maxThreads="100"//處理任務(wù)的最大線程數(shù)minSpareThreads="8"//最小空閑線程acceptCount="80"//當(dāng)最大線程數(shù)到了之后接受的請(qǐng)求進(jìn)入隊(duì)列的數(shù)量,超出這個(gè)數(shù)會(huì)被拒絕處理enableLookups="false"//關(guān)閉DNS查找(關(guān)閉DNS緩存)maxKeepAliveRequests="100"//長(zhǎng)連接的請(qǐng)求數(shù)keepAliveTimeout="1000"//長(zhǎng)連接的在線時(shí)長(zhǎng)compression="on"//啟用壓縮compressionMinSize="2048"//壓縮的大小maxParameterCount="1000"/>
compressionMinSize="2048"啟用壓縮的輸出內(nèi)容大小,默認(rèn)為2KB
●noCompressionUserAgents=“gozilla,traviata” 對(duì)于以下的瀏覽器,不啟用壓縮 ●compressableMimeType=“text/html,text/xml,text/javascript,text/css,text/plain” 哪些資源類型需要壓縮
可以配置一個(gè)線程池
引用線程池
<Connector port="8080" protocol="HTTP/1.1"executor="tomcatThreadPool"connectionTimeout="20000"redirectPort="8443"enableLookups="false"maxKeepAliveRequests="100"keepAliveTimeout="1000"compression="on"compressionMinSize="2048"maxParameterCount="1000"/>
這樣設(shè)置注意不要有重復(fù)的配置項(xiàng)