zoukankan      html  css  js  c++  java
  • Tomcat优化-------web.xml、server.xml

    server.xml

    executor

      <!--连接池配置-->
      <Executor 
            name="selfThreadPool"                    --线程池名,根据具体业务定义,需要在Connector中引用才可以生效
            namePrefix="catalina-exec-"              --线程名称前缀,根据具体业务定义 namePrefix+threaNumber
            maxThreads="1000"                        --池中最大线程数
            minSpareThreads="100"                    --活跃线程数 会一直存在
            maxIdleTime="60000"                      --线程空闲时间,超过该时间,线程会被销毁 ms
            maxQueueSize="Integer.MAX_VALUE"         --被执行前线程的排队数目
            prestartminSpareThreads="false"          --启动线程池时,是否启用minSpareThreads部分线程
            threadPriority="5"                       --线程池中线程优先级 1~10
            className="org.apache.catalina.core.StandardThreadExecutor" --线程实现类 自定义线程需时间 org.apache.catalina.Executor类
      />

    connector

        <Connector 
       executor="selfthreadPool" port
    ="8080" protocol="org.apache.coyote.http11.Http11AprProtocol" --协议类型,此协议对静态页面的亲和较好,需要安装apr,可以参考:https://www.cnblogs.com/zh-dream/p/13620379.html keepAliveTimeout="20000" maxKeepAliveRequests="500" --tomcat需要保持的最大请求数,即处于keepAlive状态的请求的个数,建议此值为maxThreads * 0.5,不得大于maxThreads,否则将得不到预期的效果,设置为-1时,表示禁用HTTP/1.0 keep-alive、HTTP/1.1 keep-alive和pending connectionTimeout="20000" --已接受,但未被处理的请求的等待超时时间 ms redirectPort="8443" --安全通信的转发端口 URIEncoding="UTF-8" --URL编码字符集 minSpareThreads="100" --默认初始化和保持空闲的线程数 enableLookups="false" --关闭DNS反向查询 useURIValidationHack="false" --关闭不必要的检查 maxThreads="1000" --处理请求线程的最大数目 未配置为200 此属性会被忽略 acceptCount="1000" --所用可能的线程都在使用时传入连接请求的最大长度 disableUploadTimeout="true" --设置允许更长的超时连接 maxConnections="1000" --接受和处理的最大连接数(nio/nio2 1000,apr 8192) maxHttpHeaderSize="8192" --请求和响应http头的最大大小 8k tcpNoDelay="true" --禁用Nagle算法,该算法用于连接小的缓冲信息,会降低通过网络发送数据包的数量,提升网络传输速率,但是对交互式应用来说,会增加响应时间 compression="on" --是否启用压缩 on off force compressionMinSize="2048" --压缩前数据最小值 2k byte noCompressionUserAgents="gozilla,traviata" --设置哪些浏览器不压缩 compressableMimeType="text/html,text/xml,text/css,application/javascript,text/plain" --设置压缩的文件类型 />

    Host

    需要禁用autodeploy属性

    注意:如果采用server.xml文件中增加<Context>元素或者在Web应用的META-INF目录定义context.xml文件部署应用,需要确保reloadable属性为false,避免WEB-INF/classes或WEB-INF/lib目录下的文件变更时自动重新加载应用。

    JSP页面的设置

    [root@apache conf]# vim $CATALINA_HOME/conf/web.xml
    
        <servlet>
            <!-- 定义Servlet引擎的名称和应用类名称,DefaultServlet用于静态页面,JspServlet用于jsp页面,DispatcherServlet用于springMVC
     -->
            <servlet-name>jsp</servlet-name>
            <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
            <init-param>
                <param-name>fork</param-name>
                <param-value>false</param-value>
            </init-param>
            <init-param>
                <!-- 调整Tomcat不检测JSP页面的修改,与reloading属性一样,通常在测试环境调试时设置为true -->
                <param-name>development</param-name>
                <param-value>false</param-value>
            </init-param>
            <init-param>
                <!-- 禁用Tomcat后台自动编译 -->
                <param-name>reloading</param-name>
                <param-value>false</param-value>
            </init-param>
            <init-param>
                <!-- JSP页面后台编译的触发频率,默认值0,单位 s -->
                <param-name>checkInterval</param-name>
                <param-value>0</param-value>
            </init-param>
            <init-param>
                <!-- 检测JSP页面修改的时间间隔,默认值4,单位 s -->
                <param-name>modificationTestInterval</param-name>
                <param-value>4</param-value>
            </init-param>
            <init-param>
                <!-- 生成高效的字符属组 -->
                <param-name>getStringAsCharArray</param-name>
                <param-value>true</param-value>
            </init-param>
            <init-param>
                <!-- 移除响应中无用的空格 -->
                <param-name>trimSpace</param-name>
                <param-value>true</param-value>
            </init-param>
            <init-param>
                <param-name>xpoweredBy</param-name>
                <param-value>false</param-value>
            </init-param>
            <load-on-startup>3</load-on-startup>
        </servlet>

    其他与JSP性能相关的属性

    org.apache.jasper.runtime.JspFactoryImpl.USE_POOL:是否启用Body池,默认启用

    org.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER:整数,当输出JSP标签Body时,是否进行字符缓冲,默认为false

    org.apache.jasper.runtime.JspFactoryImpl.POOL_SIZE:整数,JSP标签Body池大小,默认为8

    以上三个参数可以在catalina.sh中启用:

      CATALINA_OPTS="-Dorg.apache.jasper.runtime.JspFactoryImpl.USE_POOL=true"

    注意:如果JSP页面或者标签Body非常大,需要关闭此属性

    如果报错:请求的jsp页面代码超过65535字节限制,可以将mappedfile置为false

            <init-param>
                <param-name>mappedfile</param-name>
                <param-value>false</param-value>
            </init-param>
  • 相关阅读:
    网上图书商城-毕业设计
    房屋租赁系统2-毕业设计
    编译解释器-课程设计
    教师学生作业设计-课程设计
    学校论坛系统-毕业设计
    报刊征订系统-毕业设计
    公司内部管理系统-毕业设计
    销售管理系统-毕业设计
    房屋租赁系统-毕业设计
    【日拱一卒】链表——如何实现lru
  • 原文地址:https://www.cnblogs.com/zh-dream/p/14971647.html
Copyright © 2011-2022 走看看