參考了網上的一些優化參數,可是在啓動中發現 有2個報錯: 11-Feb-2018 15:57:23.293 警告 [main] org.apache.catalina.startup.SetAllPropertiesRule.begin [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'maxSpareThreads' to '200' did not find a matching property. 11-Feb-2018 15:57:23.343 警告 [main] org.apache.catalina.startup.SetAllPropertiesRule.begin [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'compressableMimeType' to 'text/html,text/xml,application/javascript,text/css,text/plain' did not find a matching property. 參考官方文檔 http://tomcat.apache.org/tomcat-9.0-doc/config/http.html maxSpareThread 這個參數已經找不到了。 compressableMimeTyp 已更換名字爲 compressibleMimeType
最後修改以下: <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" enableLookups="false" maxThreads="1000" minSpareThreads="100" acceptCount="900" disableUploadTimeout="true" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" compression="on" compressionMinSize="1024" useSendfile="false" noCompressionUserAgents="gozilla, traviata" compressibleMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript " /> 參數說明: org.apache.coyote.http11.Http11NioProtocol:調整工做模式爲Nio maxThreads:最大線程數,默認150。增大值避免隊列請求過多,致使響應緩慢。 minSpareThreads:最小空閒線程數。 acceptCount:當處理請求超過此值時,將後來請求放到隊列中等待。 disableUploadTimeout:禁用上傳超時時間 connectionTimeout:鏈接超時,單位毫秒,0表明不限制 URIEncoding:URI地址編碼使用UTF-8 enableLookups:關閉dns解析,提升響應時間 compression:啓用壓縮功能 compressionMinSize:最小壓縮大小,單位Byte compressibleMimeType :壓縮的文件類型 實際測試,可正常運行。無報錯 ©著做權歸做者全部:來自51CTO博客做者295631788的原創做品,如需轉載,請註明出處,不然將追究法律責任
Alan@wu Tomcat 內存與優化篇 Tomcat 內存與優化 1、Tomcat 運行環境介紹 1.Tomcat 自己沒法直接在計算機上運行,須要依賴硬件基礎上的操做系統和Java虛擬機; 2.Java 程序啓動時JVM都會分配一個初始內存和最大內存給這個應用; 3.當應用程序用到最大內存的時刻,就會觸發JVM作垃圾回收(GC)動做,釋放被佔用的內存; 4.所以想要調整Java程序啓動時的初始內存和最大內存,須要向JVM申請; 5.若是初始內存大小設置太小,且此時初始化的應用對象過多,虛擬機就必須重複的加載內存來知足使用; 6.基於以上緣由,最好把初始內存大小(Xms)和最大內存(Xmx)設置成同樣; 7.JVM上全部的對象都在"""堆區(heap)"""上分配內存(也有在"棧"上分配內存的) 8.堆區的大小是能夠動態擴展的,但"""堆"""的大小受限於系統使用的物理內存,當應用程序須要的內存超出"堆"的最大值時,JVM虛擬機就會拋出內存溢出異常,而且致使應用程序奔潰; 9.基於以上緣由,建議「堆」的大小設置成物理內存的80%
Linux下的tomcat: 須要找到catalina.sh,在 cygwin=false 的上面一行加上: 1 JAVA_OPTS="-Xms256m -Xmx512m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m" Windows下解壓版的tomcat 要經過startup.bat啓動tomcat才能加載配置 要添加在tomcat 的bin 下catalina.bat 裏 rem Guess CATALINA_HOME if not defined set CURRENT_DIR=%cd%後面添加,紅色的爲新添加的. 1 set JAVA_OPTS=-Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true 狀況二:安裝版的Tomcat ,沒有catalina.bat 安裝版的Tomcat下沒有catalina.bat 若是tomcat 6 註冊成了windows服務,或者windows2003下用tomcat的安裝版, 在/bin/tomcat6w.exe裏修改就能夠了 。 若是tomcat 5, windows服務執行的是bin\tomcat.exe.他讀取註冊表中的值,而不是catalina.bat的設置. 修改註冊表HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat5\Parameters\JavaOptions 原值爲 -Dcatalina.home="C:\ApacheGroup\Tomcat 5.0" -Djava.endorsed.dirs="C:\ApacheGroup\Tomcat 5.0\common\endorsed" -Xrs 加入 -Xms300m -Xmx350m 重起tomcat服務,設置生效