tomcat内存溢出解决方案_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),给程序员提供了超强的扩展性和性能,在产品运作中帮助融合原生的服务器技术以展现最佳的性能。

d7e3779a-8775-4c81-814a-92c7fc78d254
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值