tomcat配置及优化梳理

1端口配置:
tomcat默认端口是8080端口。如果要修改端口,或者要配置多个端口,修改tomcat6/conf目录里面server.xml文件.
< Service name = "Catalina2"  
 
   < Connector port = "8090" protocol = "HTTP/1.1"  
                connectionTimeout = "20000"  
                redirectPort = "8443" URIEncoding = "UTF-8" />  
 
    < Engine name = "Catalina2" defaultHost = "localhost"     
 
      < Realm className = "org.apache.catalina.realm.UserDatabaseRealm" 
 
             resourceName = "UserDatabase" />      
 
      < Host name = "localhost"  appBase = "mywebapps" 
 
            unpackWARs = "true" autoDeploy = "true" 
 
            xmlValidation = "false" xmlNamespaceAware = "false"
    </ Host  
    </ Engine  
  </ Service >
注意修改地方: Service name、port、Engine name、appBase
2 连接池配置
1.server.xml在节点  <GlobalNamingResources></GlobalNamingResources>
<Resource name="jdbc/mysqlds" 
        auth="Container" 
        type="javax.sql.DataSource" 
        username="root" 
        password="root" 
        maxIdle="30" 
        maxWait="10000" 
        maxActive="100"
        driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://127.0.0.1:3306/db_blog" />
2将对应数据库的驱动类放到tomcatlib目录.重启server生效。
3在tomcatconf/context.xml文件中的<Context></Context>节点中加入如下内容
4.web应用程序的web.xml中设置数据源参考:

<web-app></web-app>节点中加入下面内容

<resource-ref>
      <description>mysql数据库连接池</description>
      <!-- 参考数据源名字,同Tomcat中配置的Resource节点中name属性值"jdbc/mysqlds"一致 -->
      <res-ref-name>jdbc/mysqlds</res-ref-name>
      <!-- 资源类型 -->
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
      <res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
3配置优化
3.1 内存优化 :在启动脚本 bin/catalina.sh加入
JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m -Duser.timezone=Asia/Shanghai"
根据机器硬件配置优化。

3.2 tomcat 线程优化:

<Connector port="80" protocol="HTTP/1.1" maxThreads="600" minSpareThreads="100" maxSpareThreads="500" acceptCount="700"
connectionTimeout="20000" redirectPort="8443" />

maxThreads="600"       ///最大线程数
minSpareThreads="100"///初始化时创建的线程数
maxSpareThreads="500"///一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
acceptCount="700"//指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理

由于tomcat有多个connector,所以tomcat线程的配置,又支持多个connector共享一个线程池。首先。打开/conf/server.xml,增加

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="20" maxIdleTime="60000" />

最大线程500(一般服务器足以),最小空闲线程数20,线程最大空闲时间60秒。 然后,修改<Connector ...>节点,增加executor属性,executor设置为线程池的名字:

<Connector executor="tomcatThreadPool" port="80" protocol="HTTP/1.1"  connectionTimeout="60000" keepAliveTimeout="15000" maxKeepAliveRequests="1"  redirectPort="443" />

可以多个connector公用1个线程池,所以ajp connector也同样可以设置使用tomcatThreadPool线程池。

3.3禁用DNS查询

当web应用程序向要记录客户端的信息时,它也会记录客户端的IP地址或者通过域名服务器查找机器名 转换为IP地址。DNS查询需要占用网络,并且包括可能从很多很远的服务器或者不起作用的服务器上去获取对应的IP的过程,这样会消耗一定的时间。

修改server.xml文件中的Connector元素,修改属性enableLookups参数值: enableLookups="false"

如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址 

3.4设置session过期时间

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

    <session-config>   
        <session-timeout>180</session-timeout>     
    </session-config> 
单位为分钟。

3.5Tomcat缓存优化

1.参数说明

c ompression 打开压缩功能   

compressionMinSize   启用压缩的输出内容大小,这里面默认为2KB

compressableMimeType 压缩类型

connectionTimeout 定义建立客户连接超时的时间. 如果为 -1, 表示不限制建立客户连接的时间

<Connector port="9027" 

                protocol="HTTP/1.1"

                maxHttpHeaderSize="8192"

                maxThreads="1000"

                minSpareThreads="100"

                maxSpareThreads="1000"

                minProcessors="100"

                maxProcessors="1000"

                enableLookups="false"

                compression="on"

                compressionMinSize="2048" 

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

                connectionTimeout="20000"

                URIEncoding="utf-8"

                acceptCount="1000"

                redirectPort="8443"

                disableUploadTimeout="true"/>

当然上面只是列出tomcat常见优化参数。其实优化是全方位的,机器,网络等等。推荐看这篇: 提升tomcat服务器性能的七条经验  http://passover.blog.51cto.com/2431658/732629
关于tomcat的session实现机制另写一篇学习笔记。
参考:
http://www.cnblogs.com/ggjucheng/archive/2013/04/16/3024731.html
tomcat7.0.8的高级应用-apr1.4.2安装
http://www.cnblogs.com/huangjingzhou/articles/2097241.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值