1. 程式人生 > 其它 >Web專案上線時 Tomcat 優化配置

Web專案上線時 Tomcat 優化配置

技術標籤:JAVAjavatomcat

描述:

​ 我們的 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"/>

以上配置是實際線上專案的一個配置,可供大家進行參考!