Tomcat優化------(一)

前言

Tomcat作爲Web應用的服務器,目前絕大多數公司都是用其作爲應用服務器的,應用服務器的執行效率會影響系統執行,這裏會講Tomcat怎樣進行配置能提高處理性能。另外必須提到對應的JVM參數的優化的一些經驗。

Tomcat運行模式

分3種模式: bio,nio,apr 一般使用nio模式
bio效率低,apr對系統配置有一些比較高的要求

確認Tomcat的運行模式

配置文件 server.xml
<Executor name="tomcatThreadPool" 
namePrefix="catalina-exec-" 
maxThreads="1024" 
minSpareThreads="512" 
prestartminSpareThreads="true" />

關鍵配置

maxThreads

最大線程數, 默認是200

minSpareThread

最小活躍線程數, 默認是25

maxQueueSize

最大的等待隊列個數,超過則請求拒絕默認值是Integer.MAX_VALUE ,一般不改變。在某些緊急狀態修復問題需要調整

連接器(Connector)優化

Connector是連接器,負責接收客戶的請求,以及向客戶端回送響應的消息。所以Connector的優化是重要部分。默認情況下 Tomcat只支持200線程訪問,超過這個數量的連接將被等待甚至超時放棄,所以我們需要提高這方面的處理能力。

nio配置- server.xml

<Connector port="14081" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
executor="tomcatThreadPool" 
URIEncoding="UTF-8" 
compression="on"   
useBodyEncodingForURI="true" 
enableLookups="false" 
redirectPort="14443" />

影響性能配置

  • protocol
org.apache.coyote.http11.Http11Protocol - 阻塞式的Java連接器
org.apache.coyote.http11.Http11NioProtocol - 不阻塞Java連接器
org.apache.coyote.http11.Http11AprProtocol - APR / native 連接器
選擇不阻塞ava連接器
  • enableLookups
若是你想request.getRemoteHost()的調用履行,以便返回的長途客戶端的實際主機名的DNS查詢,則設置爲true。設置爲false時跳過DNS查找,並返回字符串的IP地址(從而提高性能)。默認場景下,禁用DNS查找
  • compression
設置成on,開啓壓縮

禁用AJP鏈接器

使用Nginx+tomcat的架構,用不着AJP協議,所以把AJP連接器禁用
server.xml註釋掉以下配置
  <Connector port="8019" protocol="AJP/1.3" redirectPort="8443" />

思考題

1. 線上應用系統出現問題,怎麼快速定位系統哪塊資源問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章