Tomcat优化方案

Tomcat调优,主要修改conf/server.xml的文件


1、定义线程池
   Executor是公共的线程,定义一些公共的参数,参数不一样的定义在Connector
   <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"  maxThreads="1000" acceptCount="1000" minSpareThreads="50" maxSpareThreads="100" maxIdleTime="600000" />
   name:定义名字以便Connector类调用,也可以让多个Connector调用,就达到了公用线程池的效果
   namePrefix="catalina-exec-" 在JVM上,每个运行线程都可以有一个name 字符串。这一属性为线程池中每个线程的name字符串设置了一个前缀,Tomcat将把线程号追加到这一前缀的后面。默认值:tomcat-exec-;
   maxThreads="1000" Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。默认值200。可以根据机器的时期性能和内存大小调整,一般可以在400-500。最大可以在800左右。
   acceptCount="1000"  当tomcat起动的线程数达到最大时,接受排队的请求个数,默认值为100
   minSpareThreads="50" Tomcat初始化时创建的线程数。默认值4。如果当前没有空闲线程,且没有超过maxThreads,一次性创建的空闲线程数量。Tomcat初始化时创建的线程数量也由此值设置。
   maxSpareThreads="50"  一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。默认值50。一旦创建的线程超过此数值,Tomcat会关闭不再需要的线程。线程数可以大致上用 “同时在线人数*每秒用户操作次数*系统平均操作时间” 来计算。
   maxIdleTime="60000"  在Tomcat关闭一个空闲线程之前,允许空闲线程持续的时间(以毫秒为单位)。只有当前活跃的线程数大于minSpareThread的值,才会关闭空闲线程。默认值:60000(一分钟)。
   


2、使用线程池
   <Connector port="80"  executor="tomcatThreadPool"  redirectPort="8443"  minProcessors="5" maxProcessors="50" connectionTimeout="20000" 
   compression="on" enableLookups="false" disableUploadTimeout="true" enableLookups="false"  compressionMinSize="2048" 
   compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" URIEncoding="UTF-8">
    executor: 使用Executor定义的线程池
    redirectPort:重定向的端口
    minProcessors:服务器启动时创建的处理请求的线程数;
    maxProcessors:最大可以创建的处理请求的线程数;
    enableLookups:禁用DNS查询,就是不用解析客户端的DNS,如果需要就0设为true
    URIEncoding="UTF-8":运行系统的编码
    enableLookups="false":是否反查域名,取值为:true或false。为了提高处理能力,应设置为false
    disableUploadTimeout="true":上传文件超时时间
    compression="on": 压缩建议不压缩,压缩会消耗时间
    compressionMinSize="2048":最小的压缩的大小
    compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain":压缩的内容类型
    
    


3、实例
     <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"  maxThreads="1000" acceptCount="1000" minSpareThreads="50" maxSpareThreads="100" maxIdleTime="600000" />
     <Connector port="80"  executor="tomcatThreadPool"  redirectPort="8443"  minProcessors="5" maxProcessors="50" connectionTimeout="20000" 
     compression="on"  disableUploadTimeout="true" enableLookups="false"  compressionMinSize="2048" 
     compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" URIEncoding="UTF-8" />

你可能感兴趣的:(tomcat)