Tomcat性能调优

  Tomcat 性能调优,当然前提java  VM性能已经调优过了,还没有完成的请先参看 前一篇  jvm性能调优!

tomcat性能调优,着重在并发量,吞吐量上,tomcat一个连接请求(request)就是1个线程,直到线程结束,

所以并发量还受系统最大线程数的影响,windows一般是1024,Linux/Unix是2048,以windows为例,我们设置

不超过半数及512,比较好,当然还需考虑处理能力上,即吞吐量(单位时间处理量),这个就和cpu处理能力

直接挂钩了,频率,核心数,程序业务逻辑的设计,我的建议不妨这样设计,cpu单个线程每1gHz能够在50ms内处理

完一个请求,其实一般的请求足够了那个实时可以并行的,实时线程=cpu个数 * cpu频率数(gHz)*2,为了连续处理,

我们将等待数,设置为不小于实时线程的2倍,香农采样定律你懂的,太少了cpu会有空闲的,太多了,客户端等待的难受;

为什么要*2 ,因为人眼的反应是0.1s呀 就是 100ms! 对于tomcat,主要设置$(tomcat_base_dir)/conf/server.xml 中connector

的属性!

怎么设置直接参看 官方资料 http://tomcat.apache.org/tomcat-7.0-doc/config/http.htmlConnector  support attributes:

还有其他的表格,我们来设置,tomcat的连接方式即protocol,acceptCount,maxConnections,,compression:

1. protocol:连接方式

    有3个bio( blocking Java connector),nio(non blocking Java connector),apr(the APR/native connector),我们选择nio,java的容易部署处理

2. acceptCount

    请求接收队列,默认的100,超过了就会拒绝接收,具体值可以压力测试,或实际运营,更具峰值确定,如果请求一直均衡处理数的2倍较为合理,然而

实际上就不会均衡请求,不妨设置为500;

3. maxThreads

    最大处理线程数,默认是100,推荐 cpu个数*cpu核心*频率(gHz)*2 ,

4. compression

  Gzip压缩,这个还要在conf/web中也要设置,还要设置压缩的大小默认是2048k等,是否需要,看测试结果

5. disableUploadTimeout

    上传失效时间,默认是true,这个需要关闭

6. maxConnections

    最大连接数,bio默认最大处理线程数;nio为10000;apr 为8192,windows下为1024 ,

 

下面来设置

<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"

          URIEncoding="UTF-8" 

          enableLookups="false"

   disableUploadTimeout="true"

           connectionTimeout="60000"

   maxConnections="1000"

          minSpareThreads="48"

   maxThreads="1024"

          acceptCount="1000" 

          useURIValidationHack="false"

          compression="on"

          compressionMinSize="2048"

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

          redirectPort="8443"

/>

 

posted @ 2017-09-19 16:30  bluebrow  阅读(183)  评论(0编辑  收藏  举报