線程池前端
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。 這兩個參數根據項目狀況而定。