• tomcat 优化


    背景

    tomcat的优化其实就这么几个地方,效果还不是很明显。不过了解下作为吹牛用吧。

    转载

    tomcat内存优化

    linux修改TOMCAT_HOME/bin/catalina.sh,在前面加入

    JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m -Duser.timezone=Asia/Shanghai"

    windows修改TOMCAT_HOME/bin/catalina.bat,在前面加入

    set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m

    最大堆内存是1024m,对于现在的硬件还是偏低,实施时,还是按照机器具体硬件配置优化。

    tomcat 线程优化

    <Connector port="80" protocol="HTTP/1.1" maxThreads="600" minSpareThreads="100" maxSpareThreads="500" acceptCount="700"
    connectionTimeout="20000" redirectPort="8443" />

    maxThreads="600"       ///最大线程数
    minSpareThreads="100"///初始化时创建的线程数
    maxSpareThreads="500"///一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
    acceptCount="700"//指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理

    这里是http connector的优化,如果使用apache和tomcat做集群的负载均衡,并且使用ajp协议做apache和tomcat的协议转发,那么还需要优化ajp connector。

    <Connector port="8009" protocol="AJP/1.3" maxThreads="600" minSpareThreads="100" maxSpareThreads="500" acceptCount="700"
    connectionTimeout="20000" redirectPort="8443" />

    由于tomcat有多个connector,所以tomcat线程的配置,又支持多个connector共享一个线程池。

    首先。打开/conf/server.xml,增加

    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="20" maxIdleTime="60000" />

    最大线程500(一般服务器足以),最小空闲线程数20,线程最大空闲时间60秒。

    然后,修改<Connector ...>节点,增加executor属性,executor设置为线程池的名字:

    <Connector executor="tomcatThreadPool" port="80" protocol="HTTP/1.1"  connectionTimeout="60000" keepAliveTimeout="15000" maxKeepAliveRequests="1"  redirectPort="443" />

    可以多个connector公用1个线程池,所以ajp connector也同样可以设置使用tomcatThreadPool线程池。

  • 相关阅读:
    mysql之innodb_buffer_pool
    PBO项目的组织
    03 【PMP】组织结构类型的优缺点和适用范围包括哪些
    02 【PMP】项目管理系统、PMIS、工作授权系统、配置管理系统、变更管理
    01 【PMP】组织结构类型
    手工sql注入简单入门
    新建oracle用户
    linux测试环境搭建步骤
    1、python接口测试requests
    No module named pip 安装工具提示没有pip模块时,解决办法
  • 原文地址:https://www.cnblogs.com/sddychj/p/6598716.html
Copyright © 2020-2023  润新知