更新時間:2020-12-09 17:28:05 來源:動力節(jié)點 瀏覽1284次
Tomcat服務(wù)器作為一個免費的開放源代碼的Web 應(yīng)用服務(wù)器,在Java開發(fā)領(lǐng)域被廣泛應(yīng)用。當然,Tomcat屬于輕量級應(yīng)用服務(wù)器,在處理一些高并發(fā)的大型系統(tǒng)方面還力有不足,此時,Tomcat服務(wù)器優(yōu)化就顯得至關(guān)重要了。
Tomcat服務(wù)器優(yōu)化主要有以下幾個方面:
一、Tomcat內(nèi)存優(yōu)化
Tomcat內(nèi)存優(yōu)化主要是對 tomcat 啟動參數(shù)優(yōu)化,我們可以在 tomcat 的啟動腳本 catalina.sh 中設(shè)置JAVA_OPTS 參數(shù)。
1.JAVA_OPTS參數(shù)說明
Server:啟用jdk 的 server 版;
Xms :java虛擬機初始化時的最小內(nèi)存;
Xmx : java虛擬機可使用的最大內(nèi)存;
XX:PermSize:內(nèi)存永久保留區(qū)域
XX:MaxPermSize :內(nèi)存最大永久保留區(qū)域
現(xiàn)在一般的公司服務(wù)器內(nèi)存一般都可以加到最大2G ,所以可以采取以下配置:
在cygwin=false前添加
JAVA_OPTS='-Xms1024m -Xmx2048m -XX:PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m'
配置完成后可重啟Tomcat ,查看配置是否生效。
二、Tomcat并發(fā)優(yōu)化
1.Tomcat連接相關(guān)參數(shù)
在Tomcat 配置文件 server.xml 中的配置中
1)參數(shù)說明
minProcessors:最小空閑連接線程數(shù),用于提高系統(tǒng)處理性能,默認值為 10
maxProcessors:最大連接線程數(shù),即:并發(fā)處理的最大請求數(shù),默認值為 75
acceptCount:允許的最大連接數(shù),應(yīng)大于等于 maxProcessors ,默認值為 100
enableLookups:是否反查域名,取值為:true或false。為了提高處理能力,應(yīng)設(shè)置為 false。
connectionTimeout:網(wǎng)絡(luò)連接超時,單位:毫秒。設(shè)置為 0 表示永不超時,這樣設(shè)置有隱患的。通常可設(shè)置為 30000 毫秒。
其中和最大連接數(shù)相關(guān)的參數(shù)為maxProcessors 和 acceptCount 。如果要加大并發(fā)連接數(shù),應(yīng)同時加大這兩個參數(shù)。web server允許的最大連接數(shù)還受制于操作系統(tǒng)的內(nèi)核參數(shù)設(shè)置,通常 Windows 是 2000 個左右,Linux是 1000 個左右。
2)Tomcat中的配置示例
<Connector port="8088"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
minProcessors="100"
maxProcessors="1000"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>
2.調(diào)整連接器connector的并發(fā)處理能力
1)參數(shù)說明
maxThreads:客戶請求最大線程數(shù)
minSpareThreads:Tomcat初始化時創(chuàng)建的Socket 線程數(shù)
maxSpareThreads:Tomcat連接器的最大空閑Socket 線程數(shù)
enableLookups:若設(shè)為true, 則支持域名解析,可把 ip 地址解析為主機名
redirectPort:在需要基于安全通道的場合,把客戶請求轉(zhuǎn)發(fā)到基于SSL的redirectPort端口acceptAccount:監(jiān)聽端口隊列最大數(shù),滿了之后客戶請求會被拒絕
connectionTimeout:連接超時
minProcessors:服務(wù)器創(chuàng)建時的最小處理線程數(shù)
maxProcessors:服務(wù)器同時最大處理線程數(shù)
URIEncoding:URL統(tǒng)一編碼
2)Tomcat中的配置示例
<Connector port="8088"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>
三、Tomcat緩存優(yōu)化
1.參數(shù)說明
compression:打開壓縮功能
compressionMinSize:啟用壓縮的輸出內(nèi)容大小,這里面默認為2KB
compressableMimeType:壓縮類型
connectionTimeout:定義建立客戶連接超時的時間.。如果為 -1, 表示不限制建立客戶連接的時間
2.Tomcat中的配置示例
<Connector port="8088"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>
以上就是從三個方面對Tomcat服務(wù)器優(yōu)化,主要還是為了解決Tomcat服務(wù)器的并發(fā)處理能力差的問題,詳細的各種參數(shù)除了本文中羅列出來的,在本站的Tomcat服務(wù)器教程中還有更多的實例參數(shù)可以作為參考。