联系我们

公司地址: 上海市沪宜公路1188号4号楼
     一层
联系电话:021-31080981
电子邮箱:soline@soline.com.cn
邮政编码:201802

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/java,text/css,text/plain"

    />

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

    compression="on" 打开压缩功能

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

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

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

    5.数据库性能调优

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

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

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

    6. Tomcat原生库

    Tomcat的原生库基于Apache可移植运行时(Apache Portable Runtime简称APR),给程序员提供了超强的扩展性和性能,在产品运作中帮助融合原生的服务器技术以展现最佳的性能。



  • 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/java,text/css,text/plain"

    />

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

    compression="on" 打开压缩功能

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

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

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

    5.数据库性能调优

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

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

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

    6. Tomcat原生库

    Tomcat的原生库基于Apache可移植运行时(Apache Portable Runtime简称APR),给程序员提供了超强的扩展性和性能,在产品运作中帮助融合原生的服务器技术以展现最佳的性能。


上一篇:Apache解决方案

下一篇:Websphere解决方案