tomcat优化(让你的tomcat性能翻倍)

tomcat优化

server.xml 文件优化

  1. 配置连接池

    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-Jaye"
            maxThreads="1000" minSpareThreads="10"/>
     <Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    

    name: 连接池的名称
    namePrefix:连接池中线程名称前缀
    maxThreads : 连接池允许存在的最大线程数
    minSpareThreads : 连接池中最小存在的线程数
    executor: 与连接池名称对应,表示使用的是那个连接池配置

  2. 修改Connector连接器的I/O模型为NIO模式

        <Connector executor="tomcatThreadPool"
                   port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
                   connectionTimeout="20000"
                   redirectPort="8443" />
    

    NIO模式最大化压榨了CPU,把时间片更好利用起来
    NIO适合大量长连接

  3. 移除掉AccessLogValve

     <!--
     <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="localhost_access_log." suffix=".txt"
           pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      -->
    

    valve实现都需要消耗java应用的计算时间,一般我们可以使用nginx来记录日志

web.xml文件优化

  1. 去除JspServlet
    如果项目中并没有使用JSP就可以将JspServlet移除
      <!--  
        <servlet>
            <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>
                <param-name>xpoweredBy</param-name>
                <param-value>false</param-value>
            </init-param>
            <load-on-startup>3</load-on-startup>
        </servlet>
     -->
    <!-- 
        <servlet-mapping>
            <servlet-name>jsp</servlet-name>
            <url-pattern>*.jsp</url-pattern>
            <url-pattern>*.jspx</url-pattern>
        </servlet-mapping> 
    -->
    

工程部署的三种方式

  1. 隐式部署(内部部署)
    直接将war包或者工程文件放入tomcat的webapps文件夹下

    这种部署方式不推荐使用,会使tomcat和工程代码放在一起不方便维护

  2. 显示部署方式一(外部部署)
    添加context元素到server.xml的Host节点下

    <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
           <Context path="/Demo1" docBase="d:/Demo1" reloadable="false"></Context>
    </Host>
    

    path: 工程访问的跟路径
    docBase: 工程存放的目录
    reloadable : 自动重载 - 默认是true(不同版本中有差异)
    在生产环境下需要关闭自动重载,因为自动加载增加运行开销并且很容易内存溢出

  3. 显示部署方式二(外部部署)
    在conf/Catalina/localhost文件目录下创建xml文件,文件名为工程访问根路径。xml文件内容如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <Context docBase="d:/Demo1" reloadable="false"></Context>
    

    docBase: 工程存放的目录
    reloadable : 自动重载 - 默认是true(不同版本中有差异)
    在生产环境下需要关闭自动重载,因为自动加载增加运行开销并且很容易内存溢出

常用工具

  1. JConsole
    JConsole是一个内置 Java性能分析器在java的安装bin目录下可以找到JConsole的启动文件,通过改工具可以看到内存,线程,类,javaBean的使用情况
    在这里插入图片描述

  2. JMeter

    JMeter:一个Apache组织开发的基于Java的压力测试工具
    下载地址:http://jmeter.apache.org/download_jmeter.cgi
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值