tomcat9 的調優
配置優化
vi server.xml
<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 :壓縮的文件類型
內存優化
vi bin/catalina.sh
export JAVA_OPTS="-Dfile.encoding=UTF-8 -server -Xms1500m -Xmx1500m -XX:NewSize=128m -XX:MaxNewSize=256m -XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -XX:+DisableExplicitGC -XX:+AggressiveOpts -XX:+UseBiasedLocking -Djava.awt.headless=true"
-server:啟用 JDK的 server 版本;
-Xms:Java虛擬機初始化時堆的最小內存,一般與 Xmx配置為相同值,這樣的好處是GC不必再為擴展內存空間而消耗性能;
-Xmx:Java虛擬機可使用堆的最大內存;
-XX:PermSize:Java虛擬機永久代大小;
-XX:MaxPermSize:Java虛擬機永久代大小最大值;