美文网首页
Tomcat server.xml优化

Tomcat server.xml优化

作者: 寀菇凉的小蜜蜂 | 来源:发表于2017-11-13 17:36 被阅读85次

    1. 使用线程池处理HTTP请求

    
    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="1000" minSpareThreads="50" maxIdleTime="600000" />
    
    
    • name:共享线程池的名字。这是Connector为了共享线程池要引用的名字,该名字必须唯一。默认值:None

    • namePrefix:在JVM上,每个运行线程都可以有一个name 字符串。这一属性为线程池中每个线程的name字符串设置了一个前缀,Tomcat将把线程号追加到这一前缀的后面。默认值:tomcat-exec-

    • maxThreads:该线程池可以容纳的最大线程数。默认值:200;

    • minSpareThreads:Tomcat应该始终打开的最小不活跃线程数。默认值:25。

    • maxIdleTime:在Tomcat关闭一个空闲线程之前,允许空闲线程持续的时间(以毫秒为单位)。只有当前活跃的线程数大于minSpareThread的值,才会关闭空闲线程。默认值:60000(一分钟)。

    • threadPriority:线程的等级。默认是Thread.NORM_PRIORITY

    2. Connector(一旦使用了线程池,则其它的线程属性,比如 maxThreads等将被忽略 )

    
    <Connector port="8080" executor="tomcatThreadPool"
               protocol="org.apache.coyote.http11.Http11NioProtocol" acceptCount="300"
               enableLookups="false" disableUploadTimeout="false" connectionTimeout="20000" 
               compression="on" compressionMinSize="20480" 
               noCompressionUserAgents="gozilla,traviata" 
               compressableMimeType="application/json,text/html,text/xml,application/javascript,text/css,text/plain" 
               redirectPort="8443" URIEncoding="UTF-8" />
    
    
    • executor="tomcatThreadPool" 指定使用的线程池

    • protocol="org.apache.coyote.http11.Http11NioProtocol" 指定使用NIO模型来接受HTTP请求。默认是BlockingIO,配置为protocol="HTTP/1.1"

    • acceptorThreadCount="2" 使用NIO模型时接收线程的数目

    • acceptCount="100"----指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。默认值10。如果当前可用线程数为0,则将请求放入处理队列中。这个值限定了请求队列的大小,超过这个数值的请求将不予处理。

    • enableLookups="false"--是否反查域名,默认值为true。为了提高处理能力,应设置为false

    • disableUploadTimeout="true" 上传时是否使用超时机制

    • connectionTimeout="20000" --网络连接超时,默认值20000,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。

    • compression="on" 打开压缩功能

    • compressionMinSize="20480" 启用压缩的输出内容大小,默认为2KB

    • noCompressionUserAgents="gozilla, traviata" 对于以下的浏览器,不启用压缩

    • compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" 哪些资源类型需要压缩

    • maxHttpHeaderSize="8192" http请求头信息的最大程度,超过此长度的部分不予处理。一般8K。

    • URIEncoding="UTF-8" 指定Tomcat容器的URL编码格式。

    • BlockingIO模式下的处理线程数目:
      maxThreads="150" Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。默认值200。可以根据机器的时期性能和内存大小调整,一般可以在400-500。最大可以在800左右。

    • minSpareThreads="25"---Tomcat初始化时创建的线程数。默认值4。如果当前没有空闲线程,且没有超过maxThreads,一次性创建的空闲线程数量。Tomcat初始化时创建的线程数量也由此值设置。

    • maxSpareThreads="75"--一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。默认值50。一旦创建的线程超过此数值,Tomcat会关闭不再需要的线程。线程数可以大致上用 “同时在线人数 * 每秒用户操作次数 * 系统平均操作时间” 来计算。

    3. 为了提高安全性,一般情况下屏蔽 AJP

    
    <!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->
    
    

    相关文章

      网友评论

          本文标题:Tomcat server.xml优化

          本文链接:https://www.haomeiwen.com/subject/rinzmxtx.html