`

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线程池。

 

禁用DNS查询


当web应用程序向要记录客户端的信息时,它也会记录客户端的IP地址或者通过域名服务器查找机器名 转换为IP地址。

DNS查询需要占用网络,并且包括可能从很多很远的服务器或者不起作用的服务器上去获取对应的IP的过程,这样会消耗一定的时间。

修改server.xml文件中的Connector元素,修改属性enableLookups参数值: enableLookups="false"

如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址

 

 

设置session过期时间

conf\web.xml中通过参数指定:

    <session-config>   
        <session-timeout>180</session-timeout>     
    </session-config> 
单位为分钟。

 

Apr插件提高Tomcat性能

  Tomcat可以使用APR来提供超强的可伸缩性和性能,更好地集成本地服务器技术.

  APR(Apache Portable Runtime)是一个高可移植库,它是Apache HTTP Server 2.x的核心。APR有很多用途,包括访问高级IO功能(例如sendfile,epoll和OpenSSL),OS级别功能(随机数生成,系统状态等 等),本地进程管理(共享内存,NT管道和UNIX sockets)。这些功能可以使Tomcat作为一个通常的前台WEB服务器,能更好地和其它本地web技术集成,总体上让Java更有效率作为一个高 性能web服务器平台而不是简单作为后台容器。

  在产品环境中,特别是直接使用Tomcat做WEB服务器的时候,应该使用Tomcat Native来提高其性能  

  要测APR给tomcat带来的好处最好的方法是在慢速网络上(模拟Internet),将Tomcat线程数开到300以上的水平,然后模拟一大堆并发请求。
  如果不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待。但是配上APR之后,并发的线程数量明显下降,从原来的300可能会马上下降到只有几十,新的请求会毫无阻塞的进来。
  在 局域网环境测,就算是400个并发,也是一瞬间就处理/传输完毕,但是在真实的Internet环境下,页面处理时间只占0.1%都不到,绝大部分时间都 用来页面传输。如果不用APR,一个线程同一时间只能处理一个用户,势必会造成阻塞。所以生产环境下用apr是非常必要的。

复制代码
(1)安装APR tomcat-native
    apr-1.3.8.tar.gz   安装在/usr/local/apr
    #tar zxvf apr-1.3.8.tar.gz
    #cd apr-1.3.8
    #./configure;make;make install
    
    apr-util-1.3.9.tar.gz  安装在/usr/local/apr/lib
    #tar zxvf apr-util-1.3.9.tar.gz
    #cd apr-util-1.3.9  
    #./configure --with-apr=/usr/local/apr ----with-java-home=JDK;make;make install
    
    #cd apache-tomcat-6.0.20/bin  
    #tar zxvf tomcat-native.tar.gz  
    #cd tomcat-native/jni/native  
    #./configure --with-apr=/usr/local/apr;make;make install
    
  (2)设置 Tomcat 整合 APR
    修改 tomcat 的启动 shell (startup.sh),在该文件中加入启动参数:
      CATALINA_OPTS="$CATALINA_OPTS -Djava.library.path=/usr/local/apr/lib" 。
 
  (3)判断安装成功:
    如果看到下面的启动日志,表示成功。
      2007-4-26 15:34:32 org.apache.coyote.http11.Http11AprProtocol init
分享到:
评论

相关推荐

    Tomcat优化

    Tomcat优化是提升Java Web应用性能的关键步骤,特别是在使用Tomcat 7这个版本时,优化工作显得尤为重要。本文将深入探讨基于Tomcat 7的优化策略,包括配置调整、AJP连接器的禁用以及JVM参数的优化。 一、Tomcat配置...

    TOMCAT优化

    ### TOMCAT优化详解 #### 一、引言 随着互联网技术的发展及企业级应用的不断扩展,服务器性能优化成为提高用户体验、确保业务稳定的关键因素之一。Apache Tomcat作为一款广泛使用的开源Servlet容器,其性能直接...

    Tomcat优化相关问题.pdf

    Tomcat 优化相关问题 Tomcat 优化是指对 Apache Tomcat 服务器进行性能调整和优化,以提高其处理请求的速度和效率。下面是 Tomcat 优化相关问题的详细知识点: 一、JVM 参数调优 在 Tomcat 中,JVM 参数调优是...

    Tomcat性能优化

    【标签】:“Tomcat优化”进一步确认了我们要关注的是Tomcat的整体优化策略,这包括但不限于启动速度、并发能力、内存使用效率等方面。 【文件】:“Tomcat7性能优化调优.docx”可能包含了关于Tomcat7性能优化的...

    tomcat日志切割和tomcat优化

    【标题】:Tomcat日志切割与Tomcat优化 【内容】: Tomcat作为流行的Java Servlet容器,其性能和日志管理是运维人员关注的重点。日志切割是保持日志文件大小合理、便于管理和分析的重要手段,而Tomcat优化则关乎...

    tomcat优化

    Tomcat 优化方案 Tomcat 是一个流行的 Java 服务器,广泛应用于 Web 应用程序的开发中。然而,Tomcat 的性能优化却是许多开发者头疼的问题。为了帮助开发者解决这个问题,本文将介绍 Tomcat 优化方案的七个方面,...

    Tomcat优化-Tomcat 的性能调优的原理和方法

    ### Tomcat优化——Tomcat 的性能调优的原理和方法 #### 一、概述 Tomcat作为一款广泛使用的开源Web服务器容器,其性能直接影响到基于它的应用程序的表现。本文旨在介绍Tomcat性能调优的基本原理与具体实施方法,...

    Tomcat\Tomcat优化和监控

    【Tomcat优化与监控】是IT领域中针对服务器性能提升和状态监控的重要环节,尤其是在运行Java应用程序时,Tomcat作为广泛使用的应用服务器,其优化能够显著提升系统性能和稳定性。以下将详细介绍标题和描述中涉及的...

    tomcat优化及安全

    【标题】:Tomcat优化与安全强化指南 【描述】:本文将深入探讨Tomcat服务器的优化策略和安全配置规范,以确保应用高效稳定运行并防止潜在的安全风险。 【标签】:Tomcat优化 服务器安全 【正文】: Tomcat是一...

    windows64位环境tomcat7.0、8.0下载(内含一张tomcat优化代码截图)

    以下是对“windows64位环境tomcat7.0、8.0下载(内含一张tomcat优化代码截图)”这一主题的详细解读。 首先,Apache Tomcat 7.0.70和8.0.5是两个不同版本的Tomcat,每个版本都有其特定的特性和改进。Tomcat 7.0是7.x...

    tomcat优化调优文档

    ### Tomcat优化调优知识点详解 #### 一、Tomcat简介及重要性 Tomcat作为一款免费且开源的Web应用服务器软件,在Java开发领域占据着举足轻重的地位。其核心功能是支持运行Java Servlet/JSP,同时也因其轻量级、易用...

    apr库(tomcat优化)

    包含以上是个包,只要应用于LINUX下,用于TOMCAT优化apr连接器使用的 说明下关于TOMCAT调优一种建议 1 Connector介绍  1.1 Connector的种类  Tomcat源码中与connector相关的类位于org.apache.coyote包中,Connector...

    tomcat优化配置1

    Tomcat优化配置是提升Java应用程序性能的关键步骤,尤其是对于运行在Tomcat上的Web应用。本篇文章将详细讲解Tomcat的内存优化和连接器配置优化,帮助你确保服务器稳定且高效地运行。 首先,我们关注Tomcat的内存...

    Tomcat优化相关问题.zip

    《深入探讨Tomcat优化》 在Java Web开发领域,Tomcat作为一款广泛应用的开源Servlet容器,其性能优化是提升系统整体效率的关键环节。面试中,掌握Tomcat的优化技巧不仅能够展现出开发者对服务器管理的深入理解,也...

    【面试资料】-(机构内训资料)Tomcat优化相关问题.zip

    【标题】中的“Tomcat优化相关问题”是一个关键主题,这通常涉及到服务器性能提升、稳定性增强以及资源管理等核心议题。Tomcat是Apache软件基金会的一个开源项目,它是一个小巧且高效的Java Servlet容器,广泛用于...

Global site tag (gtag.js) - Google Analytics