Web專案上線時 Tomcat 優化配置
阿新 • • 發佈:2020-12-08
描述:
我們的 web 專案開發完成後,需要打包,部署到 Tomcat 伺服器,專案上線時,我們需要對 Tomcat 進行優化配置,讓每個 Tomcat 效能發揮到最佳;
這裡我們從記憶體、併發、和快取,三個方面進行優化;
1.記憶體優化
記憶體優化主要是對啟動引數優化,修改 Tomcat 啟動指令碼 catalina.sh,新增 JAVA_OPTS 引數;
JAVA_OPTS 說明:
server 啟用JDK的 server -Xms JVM初始化時的最小記憶體 -Xmx JVM可使用的最大記憶體; -XX: PermSize 記憶體永久保留區域 -XX:MaxPermSize 記憶體最大永久保留區域
以 伺服器記憶體 2G 為例,配置如下:
JAVA_OPTS='-Xms1024m -Xmx2048m -XX: PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m'
配置完成後,重啟 Tomcat;
2.併發優化
併發優化主要是修改 Tomcat / conf 配置檔案中的 server.xml;
重點引數:
maxThreads 客戶請求最大執行緒數 minSpareThreads 初始化時建立的 socket 執行緒數 maxSpareThreads 聯結器的最大空閒 socket 執行緒數 enableLookups 若設為true, 則支援域名解析,可把 ip 地址解析為主機名 redirectPort 在需要基於安全通道的場合,把客戶請求轉發到基於SSL 的 redirectPort 埠 acceptAccount 監聽埠佇列最大數,滿了之後客戶請求會被拒絕(不能小於maxSpareThreads ) connectionTimeout 連線超時 minProcessors 伺服器建立時的最小處理執行緒數 maxProcessors 伺服器同時最大處理執行緒數 URIEncoding URL統一編碼
配置示例:
<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"/>
3.快取優化
快取優化主要是修改 Tomcat / conf 配置檔案中的 server.xml;
重點引數:
compression 開啟壓縮功能
compressionMinSize 啟用壓縮的輸出內容大小,這裡面預設為2KB
compressableMimeType 壓縮型別
connectionTimeout 建立客戶連線超時的時間. 如果為 -1, 表示不限制建立客戶連線的時間
配置示例:
<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 進行優化配置;
標準配置(推薦):
<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"/>
以上配置是實際線上專案的一個配置,可供大家進行參考!