码迷,mamicode.com
首页 > 其他好文 > 详细

Tomcat优化

时间:2015-10-10 17:05:28      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

由于Tomcat的运行依赖于JVM,从虚拟机的角度我们把Tomcat的调整分为外部环境调优自身调优两类来描述。 

1.外部环境调优

 Tomcat需要依赖Java虚拟机运行。根据客户选用的主机的操作系统选择对应的 JDK的版本。无论哪个厂商的JDK,都建议使用最新的版本。 
        虚拟机可通过命令行的方式改变虚拟机使用内存的大小。如下表所示有两个参数用来设置虚拟机使用内存的大小。 
        参数                               描述 
        -Xms<size>                JVM初始化堆的大小 
        -Xmx<size>                JVM堆的最大值 
        Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。 
  JAVA_OPTS=‘-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】’‘ 

windows修改TOMCAT_HOME/bin/catalina.bat,在前面加入

(export JAVA_HOME=‘/home/ftpuser/xjSheetHome/java/jdk1.5.0_22/‘)

set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m

最大堆内存是1024m,对于现在的硬件还是偏低,实施时,还是按照机器具体硬件配置优化。

2.自身调优

2.1tomcat 线程优化

这里以tomcat7的参数配置为例,需要修改conf/server.xml文件,主要是优化连接配置,关闭客户端dns查询。

<Connector port="8080"   
           protocol="org.apache.coyote.http11.Http11NioProtocol"  
           connectionTimeout="20000"  
           redirectPort="8443"   
           maxThreads="500"   
           minSpareThreads="20"  
           acceptCount="100" 
           disableUploadTimeout="true" 
           enableLookups="false"   
           URIEncoding="UTF-8" />

2.2设置session时间

conf\web.xml中通过参数指定:

    <session-config>  

        <session-timeout>180</session-timeout>    

    </session-config>

单位为分钟。

2.3配置tomcat禁止目录下的文件

在{tomcat_home}/conf/web.xml中,把listings参数设置成false即可,如下:

技术分享

 3.服务器资源
对于静态页面最好是能够缓存起来,这样就不必每次从磁盘上读。这里我们采用了Nginx作为缓存服务器,将图片、css、js文件都进行了缓存,有效的减少了后端tomcat的访问。
  另外,为了能加快网络传输速度,开启gzip压缩也是必不可少的。但考虑到tomcat已经需要处理很多东西了,所以把这个压缩的工作就交给前端的Nginx来完成。
  除了文本可以用gzip压缩,其实很多图片也可以用图像处理工具预先进行压缩,找到一个平衡点可以让画质损失很小而文件可以减小很多。
4.采用集群
单个服务器性能总是有限的,最好的办法自然是实现横向扩展,那么组建tomcat集群是有效提升性能的手段。我们还是采用了Nginx来作为请求分流的服务器,后端多个tomcat共享session来协同工作。

Tomcat优化

标签:

原文地址:http://www.cnblogs.com/xumaodun/p/4867405.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!