Tomcat 7.0.x性能优化

大憨熊 提交于 2019-12-06 12:33:40

        Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。

       是目前的开发焦点。它在汲取了Tomcat 6.0.x优点的基础上,实现了对于Servlet 3.0、JSP 2.2和EL 2.2等特性的支持。除此以外的改进列表如下:

        · Web应用内存溢出侦测和预防

        · 增强了管理程序和服务器管理程序的安全性

        · 一般 CSRF保护

        · 支持web应用中的外部内容的直接引用

        · 重构 (connectors, lifecycle)及很多核心代码的全面梳理

1. 配置方法

  • 启动内存参数的配置

        tomcat/bin/catalina.bat 如果是linux 就是 catalina.sh

        在rem 的后面增加如下参数

        set JAVA_OPTS= -Xms256m -Xmx256m -XX:MaxPermSize=64m

  • 修改Tomcat的JDK目录

        打开tomcat/bin/catalina.bat

        在最后一个rem后面增加

        set JAVA_HOME=C:\Program Files\Java\jdk1.8.0

  • 增加虚拟目录

        /tomcat/conf/server.xml

        第一行是以前默认存在的,第二行是新增的

        <Context path="" docBase="ROOT" debug="0" reloadable="true"></Context>

        <Context path="/jsp/a" reloadable="true" docBase="E:\workplace\www.java2000. net\WebContent" />

        使用默认配置的tomcat,另外虚拟目录也可这设置:

        <Context path="/test" docBase="webContent" reloadable="true"/>

        因为默认情况下,tomcat启动过程中配置虚拟目录的时候会从 webapps目录下查找webContent应用。

        这样配置好了,即使以后从一台服务器移植到另一台服务器,不做任何修改也能运行起来。

  • GET方式URL乱码问题解决

        打开 tomcat/conf/server.xml

        查找下面这部分,在最后增加一段代码就可以了。

        <Connector port="80" maxHttpHeaderSize="8192"

        .................

        URIEncoding="UTF-8" useBodyEncodingForURI="true"

        ...............

        />

        其中的UTF-8 请根据你的需要自己修改,比如GBK

  • 虚拟主机配置文件

        tomcat/conf/server.xml

        <!-- 默认的主机 -->

        <Host name="localhost" appBase="webapps"

        unpackWARs="true" autoDeploy="true"

        xmlValidation="false" xmlNamespaceAware="false">

        <Context path="" docBase="ROOT" debug="0" reloadable="true"></Context>

        ...

        </host>

        <!-- 以下是新增的虚拟主机 -->

        <Host name="" appBase="webapps"

        unpackWARs="true" autoDeploy="true"

        xmlValidation="false" xmlNamespaceAware="false">

        <Context path="" docBase="d:\" debug="0" reloadable="true"></Context>

        <!-- 虚拟目录 -->

        <Context path="/count" docBase="d:\counter.java2000. net" debug="0" reloadable="true"></Context>

        </Host>

        <Host name="java2000. net" appBase="webapps"

        unpackWARs="true" autoDeploy="true"

        xmlValidation="false" xmlNamespaceAware="false">

        <Context path="" docBase="d:\ " debug="0" reloadable="true"></Context>

        <Context path="/count" docBase="d:\counter.java2000. net" debug="0" reloadable="true"></Context>

        </Host>

2. Tomcat优化

    思路:

        首先要掌握未优化之前,服务器性能现状; 
        设置虚拟机内存,性能提升明显; 
        设置tomcat运行模式略微有提高; 
        设置tomcat线程池,一般设置的比较大以免成为瓶颈; 
        逐步递增的性能调试计划,从较少请求数,较低并发开始逐步递增。直到性能明显下降位置; 
        以吞吐率、并发、响应时间等为关键性能指标; 
        区分裸奔性能和分布式调用的性能; 
        尽量覆盖全部代码运行,服务启动要为性能测试做特殊处理(callId,timeStamp); 
        做AB压力测试,可以编写个shell夜间运行并将结果重定向;

实现:

  (1)屏蔽AJP


  (2)启用NIO或者APR模式运行 


 (3)调整nio的线程池


 (4)调整内存


 (5)启用APR


 (6)调整线程池



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!