Tomcat主配置-請求處理

線程池前端

namePrefix
建立的每一個線程的名稱前綴,建議修改爲有意義的字符串,方便後期分析線程棧。

maxThreads
線程池中活動線程的最大數目。決定服務的承載力。
對於NIO,表示最大能夠同時處理的請求數。通常範圍在200-800,建議從400開始進行負載測試,
若CPU負載高,則下降線程數,由於極可能應用爲CPU密集型。反之則提升線程數,考慮數據庫
等資源瓶頸。

minSpareThread
備用線程的最小數量。

maxIdleThread
活動線程數大於最小備用線程數時,空閒線程關閉以前的等待時間,單位爲毫秒

prestartminSpareThreads
是否在啓動鏈接池啓動時預啓動備用線程,建議true,默認爲false.

maxOueueSize:
在請求拒絕以前,排隊等待執行的任務最大數目。
設置太短,請求有可能被錯誤拒絕; 設置太長,當負載太重時,會積壓過多請求,出現假死現象。

鏈接器-性能相關數據庫

enableLookups
設置爲true,在調用request.getRemoteHost() 方法時將執行DNS查詢以返回遠程客戶端
的實際主機名稱。設置爲false,將跳過該査詢直接返回IP地址以提髙性能。默認false.

maxKeepAliveRequest
連接在被服務器關閉以前,能夠管線傳輸的HTTP請求最大數目。默認值100。在前端有
反向代理的狀況下,建議調大,減小鏈接的建立消耗。通常範圍在200-500.

keepAliveTimeout
在關閉鏈接以前,Connector等待下一個請求的時間,單位爲毫秒。默認值與
connectionTimeout—致。對於HTTP連接器,-1表示不超時。

connectionTimeout
Connector接收到連接後的等待超時時間和請求內部的超時時間,單位爲毫秒。-1表示不超時。
對於HTTP連接器,默認爲60000,可是Tomcat的server.xml文件中配置的值爲20000。
除非disableUploadT imeout設置爲false,此屬性也用於控制讀取請求體。

socket.appReadBufSize   
連接中讀緩衝的大小,單位爲字節。併發較低的狀況下,能夠增大該值以緩衝更多數據。對於
大量的keep-alive連接,下降該值或者增長堆內存。

socket.appWriteBufSize  
連接中寫緩衝的大小,單位爲字節。併發較低的狀況下,能夠增大該值以緩衝更多數據。對於
大量的keep-alive連接,下降該值或者增長堆內存。一般默認值太低,若是不處理數以萬計的
併發連接,應適當調大。

connectionUploadTimeout
數據上傳的超時時間,單位爲毫秒。只有當disableUploadTimeout設置爲false時生效。

disableUploadTimeout
該屬性容許Servlet容器使用長連接進行數據上傳。如不指定,該屬性設置爲true,即禁用。
有大數據上傳功能的狀況下,建議開啓。

acceptCount
當全部請求處理線程已被佔用時,等待請求隊列的最大長度。當隊列填滿時,接收到的
任何請求均會被拒絕。默認值100,建議調整到500左右。
高峯時有鏈接被拒絕時,考慮增長該參數值。若鏈接出現無響應, 則減小該參數值.

acceptorThreadCount:    用以接收連接的線程數。對於多核服務器或者當前存在過多的
非keep-alive狀態的連接時,可增大該數值    1,通常架構前端有反向代理。默認就好.

pollerThreadCount
用於polling事件的線程數目。至7.0.27版本,默認爲毎核1個。自7.0.28版本以後,
默認每核1個,不超過2個。通常用默認便可。

selectorTimeout
poller的select超時時間,單位爲毫秒。該屬性值很是重要,由於連接的清理在同一個
線程執行,因此不能設置爲一個很是髙的值。默認爲1000ms。默認便可。

鏈接器-流量相關緩存

maxHeaderCount
容許的最大的請求頭個數,當請求頭個數超過該值是將會被拒絕。當爲負值時,表示不做限制。
無特殊需求,默認便可。默認值100.

xpoweredBy: 響應頭顯示Servlet版本信息。默認false,默認就好。

maxParameterCount
請求參數(GET和POST之和)最大個數,超出該個數的參數將被忽略。當爲負值時,不做限制。

maxConnections
服務器接受並處理的最大鏈接數。當到達該值後,服務器接收可是不會處理更多的請求。
但系統仍然接收鏈接。

server
HTTP響應的Server頭信息

壓縮服務器

compression 
該參數能夠接受的值以下:
 off:禁用壓縮
 on:容許壓縮
 force:全部狀況強制壓縮
 整數值:等價於 on, 該值表示輸出數據壓縮以前的最小數據量。
 在不知道content-length的狀況下,若是該屬性爲除off之外的其餘值,那麼輸出仍將被壓縮。
 默認: off

compressionMinSize
若是compression設置爲on,該屬性用於指定輸出數據壓縮以前的最小數據量。只有當響應數據
超過該值時,纔會啓用GZIP壓縮。

compressableMimeType    
能夠採用HTTP壓縮的MIME類型,以逗號分隔。

靜態文件緩存架構

Tomcat 7爲Context的屬性:
<Context allowLinking="true" />
Tomcat8爲Context/Resources的屬性:
<Context>
<Resources allowLinking="true" />

allowLinking
應用中是否容許軟鏈接外部文件或目錄。

cachingAllowed
是否啓用靜態文件緩存。

cacheMaxSize/20如下。

緩存空間大小。單位kb.

cacheObjectMaxSize
容許緩存的最大文件容量,大小此容量的文件將不被Cache.
cacheObjectMaxSize會被限定在cacheMaxSize/20如下。

cacheTtl (renamed: it was cacheTTL in Tomcat 7)
Cache有內容的檢查間隔。默認5000,單位ms.

JSP頁面優化,(JSP用的人不多了)併發

(1). 預編譯JSP頁面。
  (2). 設置開發模式爲false。
  (3). 設置genStringAsCharArray參數爲true。
  (4). 設置trimSpaces參數爲true。
  (5). 靜態頁面緩存。

請求編碼app

URIEncoding
 用於指定解碼URI字節的字符編碼,在xx%解碼以後。

 useBodyEncodingForURI
 是否contentType指定的編碼可用於URI  査詢參數,以替代 使用URIEncoding。

 這兩個參數根據項目狀況而定。
相關文章
相關標籤/搜索