Tomcat调优技巧

Tomcat调优大致分为两大类:

一、Tomcat的自身调优
    采用动静分离节约Tomcat的性能
    调整Tomcat的线程池
    调整Tomcat的连接器
    修改Tomcat的运行模式
    禁用AJP连接器
二、JVM的调优
    调优JVM内存

一、Tomcat自身调优

1、采用动静分离

      静态资源如果让Tomcat处理的话Tomcat的性能会被损耗很多,所以一般采用Nginx+Tomcat实现动静分离,让Tomcat只负责jsp文件的解析工作,Nginx实现静态资源的访问。

2、调优Tomcat线程池

     在Tomcat的serve.xml配置文件下配置Executor,相关参数如下:

    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" 
            maxThreads="150"  minSpareThreads="4" maxIdleTime="6000"/>

     name:线程池的名字;

     namePrefix:指定线程池中每一个线程的name前缀;

     maxThreads:设定线程池中最大线程数量,当请求数量为N(比maxThreads大很多),这将不是意味着将maxThreads属性设为   N,而是建议采用Tomcat集群。即,假设此时有2N个请求,更好的解决办法是在两个Tomcat设置maxThreads属性为N而不是在一个Tomcat的情况下设maxThreads为2N。

     minSpareThreads:线程池中允许的空闲线程数;

     maxIdLeTime:一个线程空闲多久算作是一个空闲线程的量;

3、调优Tomcat的连接器Connector

     在Tomcat的Serve.xml配置文件中配置Connector,相关参数如下:

<Connector executor="tomcatThreadPool"
               port="11009" protocol="HTTP/1.1"
               connectionTimeout="20000"
               enableLookups="false" 
               URIEncoding="UTF-8"/>

     executor:指定这个连接器所使用的线程池;

     enableLookups=false;关闭DNS解析,减少性能损耗;

     min(max)Processors:服务器启动时创建的最小(大)线程数;

     acceptCount=1000:当线程池中的线程都被占用时,队列中允许存放的请求数;

4、修改Tomcat的运行模式

     BIO:Tomcat 8 以下版本默认使用BIO(阻塞式IO)模式,对于每一个请求都要创建一个线程来进行处理,不适合高并发。

     NIO:Tomcat 8 以上版本默认使用NIO(非阻塞式IO)模式。

     APR:Apache Protable Runtime,Tomcat生产环境运行的首选方式,如果操作系统没有安装APR或者APR路径未指定到Tomcat默认可识别的路径,则APR模式无法启动,此时自动切换为NIO模式,安装APR和Native,直接启动就支持APR。APR是从操作系统级别解决异步IO问题,APR的本质是使用JNI技术调用操作系统底层的IO接口,所以需要提前安装所需要的依赖提升Tomcat对静态文件的处理性能。

5、禁用AJP连接器

     AJP:Apache JServer Protocol,使用Nginx+Tomcat的架构,所以用不着AJP协议,所以把AJP连接器禁用。具体位置如下:

    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector jvmRoute="tomcat1" port="8081" protocol="AJP/1.3" redirectPort="8443"/>

二、JVM调优

     Tomcat是运行在JVM上的,所以对JVM的调优也是非常有必要的。

 

 

     

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值