參考了網上的一些優化參數,但是在啟動中發現 有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 內存與優化 一、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服務,設置生效