一,tomcat自身優化。java
maxThreads :tomcat處理請求是是用的線程來處理的,這個表示tomcat的最大線程數,默認200。瀏覽器
minSpareThreads:最小空閒線程數,表示沒人訪問的時候,也開多少線程等待訪問。tomcat
maxSpareThreads:最大備用線程數,一旦建立的線程超過這個值,Tomcat 就會關閉再也不須要的 socket 線程。服務器
上邊配置的參數,最大線程 500(通常服務器足以),要根據本身的實際狀況合理設置,設置越大會耗費內存和 CPU,由於 CPU 疲於線程上下文切換,沒有精力提供請求服務了,最小空閒線程數 20,線程最大空閒時間 60 秒,固然容許的最大線程鏈接數還受制於操做系統的內核參數設置,設置多大要根據本身的需求與環境。固然線程能夠配置在「tomcatThreadPool」中,也能夠直接配置在「Connector」中,但不能夠重複配置。網絡
URIEncoding:tomcat容器編碼配置。jvm
connnectionTimeout:網絡超時時間,單位:毫秒,設置爲 0 表示永不超時,這樣設置有隱患的。通常可設置爲 30000 毫秒,可根據檢測實際狀況,適當修改。創建鏈接到數據發送過來的時間。socket
enableLookups:反查域名,true返回遠程主機的主機名,false返回ip地址,爲了提升處理能力,應設置爲 false。優化
disableUploadTimeout:上傳時是否使用超時機制。編碼
connectionUploadTimeout:上傳超時時間,畢竟文件上傳可能須要消耗更多的時間,這個根據你本身的業務須要本身調,以使Servlet有較長的時間來完成它的執行,須要與上一個參數一塊兒配合使用纔會生效。操作系統
acceptCount:指定當全部可使用的處理請求的線程數都被使用時,可傳入鏈接請求的最大隊列長度,超過這個數的請求將不予處理,默認爲100個。
keepAliveTimeout:長鏈接最大保持時間(毫秒),表示在下次請求過來以前,Tomcat 保持該鏈接多久,默認是使用 connectionTimeout 時間,-1 爲不限制超時。即該鏈接使用完後 多久關閉。
maxKeepAliveRequests:表示在服務器關閉以前,該鏈接最大支持的請求數。超過該請求數的鏈接也將被關閉,1表示禁用,-1表示不限制個數,默認100個,通常設置在100~200之間。
compression:是否對響應的數據進行 GZIP 壓縮,off:表示禁止壓縮;on:表示容許壓縮(文本將被壓縮)、force:表示全部狀況下都進行壓縮,默認值爲off,壓縮數據後能夠有效的減小頁面的大小,通常能夠減少1/3左右,節省帶寬。
compressionMinSize:表示壓縮響應的最小值,只有當響應報文大小大於這個值的時候纔會對報文進行壓縮,若是開啓了壓縮功能,默認值就是2048。
compressableMimeType:壓縮類型,指定對哪些類型的文件進行數據壓縮。
noCompressionUserAgents="gozilla, traviata": 對於如下的瀏覽器,不啓用壓縮。
若是已經對代碼進行了動靜分離,靜態頁面和圖片等數據就不須要 Tomcat 處理了,那麼也就不須要配置在 Tomcat 中配置壓縮了。
二,Tomcat內存優化
Tomcat內存優化主要是對 tomcat 啓動參數優化,我們能夠在 tomcat 的啓動腳本 catalina.sh 中設置 java_OPTS 參數。
JAVA_OPTS參數說明
-server 啓用jdk 的 server 版;
-Xms java虛擬機初始化時的最小內存;
-Xmx java虛擬機可以使用的最大內存;
-XX: PermSize 內存永久保留區域
-XX:MaxPermSize 內存最大永久保留區域
服務器參數配置
現公司服務器內存通常均可以加到最大2G ,因此能夠採起如下配置:
JAVA_OPTS=’-Xms1024m -Xmx2048m -XX: PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m’
配置完成後可重啓Tomcat ,經過如下命令進行查看配置是否生效:
關於java_opts的說明配置
https://blog.csdn.net/cuker919/article/details/8233821
https://www.jianshu.com/p/24f5b30cc6f7
https://my.oschina.net/abcfy2/blog/192203 關於java_opts配置在哪的。很精髓
直接在bin目錄下加 setenv.sh 將java_opts配置在裏面便可。配置可以下:
JAVA_OPTS="--server -Xmx1280m -XX:+UseConcMarkSweepGC"
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
加2篇關於配置的連接
https://blog.csdn.net/david_pfw/article/details/82918331
https://blog.csdn.net/ljj_9/article/details/79145324