Tomcat 优化方案

1.提高JVM栈内存JVM heap memory

tomcat有时候会“内存溢出”,这种问题出现在实际的生产环境中,产生这种问题的原因是tomcat使用较少的内存给进程。通过配置tomcat的配置文件(window下的tomcat/bin/catalina.bat或Linux下的tomcat/bin/catalina.sh)可以解决此问题。这种解决方法是通过增加JVM的栈内存实现的。这个方案可以让tomcat可以更多关注处理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服务器以获得更好的性能和可伸缩性。新的tomcat包含了一个监听器来处理JRE和PermGen的内存泄漏。使用的监听器是

〈Listener  className="org.apache.catalina.core.JreMemoryLeakPreventionListener"  />

3.线程池设置

线程池指定Web请求负载的数量,可以通过调整连接器属性“maxThreads”完成设置。maxThreads是由服务器处理的并发请求的最大数量。如果maxThreads设置的值过低,将有没有足够的线程来处理所有的请求,请求将进入等待状态,只有当一个的处理线程释放后才被处理;如果设置的太大,Tomcat的启动将花费更多时间。因此它取决于我们给maxThreads设置一个正确的值。

〈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" />

4.压缩

HTTP压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求服务器对应资源后,从服务器端将资源文件压缩,再输出到客户端,由客户端的浏览器负责解压缩并浏览。

tomcat5.0以后的版本是支持对输出内容进行压缩的,使用的是gzip压缩格式。

〈Connector port="80" protocol="HTTP/1.1"  connectionTimeout="20000"

redirectPort="8443" executor="tomcatThreadPool" URIEncoding="utf-8"

compression="on"  compressionMinSize="50"  noCompressionUserAgents="gozilla,  traviata"

 compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"

   />

 从上面节点的属性可以看出,要使用gzip压缩功能,你需要在Connector节点中加上如下属性

compression="on" 打开压缩功能

compressionMinSize="50" 启用压缩的输出内容大小,单位byte默认为2048

noCompressionUserAgents="gozilla,

traviata" 对于以下的浏览器,不启用压缩

compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" 哪些资源类型需要压缩

5.数据库性能调优

Tomcat性能在等待数据库查询被执行期间会降。提高性能:

使用可能包含“命名查询”的关系型数据库,Tomcat会在启动时默认加载命名查询,这个可能会提升性能。

确保所有数据库连接正确地关闭。正确配置数据库连接池设置。Resource要素的最大空闲数(maxIdle),最大连接数(maxActive),最大建立连接等待时间(maxWait)属性的值。

6. Tomcat原生库

Tomcat的原生库基于Apache可移植运行时(Apache Portable

Runtime简称APR),给程序员提供了超强的扩展性和性能,在产品运作中帮助融合原生的服务器技术以展现最佳的性能。

你可能感兴趣的:(Tomcat 优化方案)