1. 提高JVM棧內存Increase JVM heap memory
配置TOmcat的配置文件下的catalinatomcat server folder/bin
- Windows:catalina.bat
- Linux:catalina.sh
JVM通常不去調用垃圾回收器,所以服務器可以更多關注處理web請求,並要求盡快完成。 下面,給出這個文件的配置信息,
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+DisableExplicitGC
2. 解決JRE內存泄露
最新的tomcat版本6.0.26及以上就可以解決JRE內存泄露,因為它包含了一個監聽器來處理JRE和PermGen的內存泄漏。tomcat server folder/conf/server.xml使用的監聽器是
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
3. 線程池設置
tomcat server folder/conf/server.xml
-
方法一:直接配置在Connector
<Connector port="8080" address="localhost" maxThreads="250" maxHttpHeaderSize="8192" emptySessionPath="true" protocol="HTTP/1.1" enableLookups="false" redirectPort="8181" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" /> -
方法二:配置Executor(推薦配置)
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="250" minSpareThreads="20"/> <Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
4. gzip壓縮
tomcat server folder/conf/server.xml
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8181" compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla,traviata" compressableMimeType="text/html,text/xml,text/javascript,application/x-javascript,application/javascript,text/css,text/plain" />
5. protocol:NIO
tomcat server folder/conf/server.xml
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" redirectPort="8181 "compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla,traviata" compressableMimeType="text/html,text/xml,text/javascript,application/x-javascript,application/javascript,text/css,text/plain"/>
6. Tomcat原生庫(APR)-需要Lib
Tomcat的原生庫基於Apache可移植運行時(Apache Portable Runtime簡稱APR),給程序員提供了超強的擴展性和性能,在產品運作中幫助融合原生的服務器技術以展現最佳的性能
