`

TOMCAT优化

 
阅读更多

1.内存设置(VM参数调优)

(1). Windows环境下,是tomcat解压版(执行startup.bat启动tomcat) ,解决办法:

修改“%TOMCAT_HOME%\bin\catalina.bat”文件,在文件开头增加如下设置:

set JAVA_OPTS=-Xms512m -Xmx512m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=512m

备注:一定加在catalina.bat最前面。

(2). Windows环境下,是tomcat安装版(利用windows的系统服务启动tomcat),解决办法:

修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat6\Parameters\JavaOptions

原值为:

-Dcatalina.home=E:\Tomcat 6.0

-Dcatalina.base=E:\Tomcat 6.0

-Djava.endorsed.dirs=E:\Tomcat 6.0\common\endorsed

-Djava.io.tmpdir=E:\Tomcat 6.0\temp

-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager

-Djava.util.logging.config.file=E:\Tomcat 6.0\conf\logging.properties

加入:

Xms512m -Xmx512m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=512m

重起tomcat服务,设置生效。

(3). Linux环境下, ,解决办法:

修改“%TOMCAT_HOME%\bin\catalina.sh”文件,在文件开头增加如下设置:JAVA_OPTS=’-Xms256m -Xmx512m’

 

各参数详解:

-Xms:设置JVM初始内存大小(默认是物理内存的1/64)

-Xmx:设置JVM可以使用的最大内存(默认是物理内存的1/4,建议:物理内存80%)

-Xmn:设置JVM最小内存(128-256m就够了,一般不设置)

默认空余堆内存小于 40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、 -Xmx相等以避免在每次GC 后调整堆的大小。

在较大型的应用项目中,默认的内存是不够的,有可能导致系统无法运行。常见的问题是报Tomcat内存溢出错误“java.lang.OutOfMemoryError: Java heap space”,从而导致客户端显示500错误。

 

-XX:PermSize :为JVM启动时Perm的内存大小

-XX:MaxPermSize :为最大可占用的Perm内存大小(默认为32M)

-XX:MaxNewSize,默认为16M

PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很CLASS的话,就很可能出现“java.lang.OutOfMemoryError: PermGen space”错误。

对于WEB项目,jvm加载类时,永久域中的对象急剧增加,从而使jvm不断调整永久域大小,为了避免调整),你可以使用更多的参数配置。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小,那么就会产生此错误信息了。

其它参数:

-XX:NewSize :默认为2M,此值设大可调大新对象区,减少Full GC次数

-XX:NewRatio :改变新旧空间的比例,意思是新空间的尺寸是旧空间的1/8(默认为8)

-XX:SurvivorRatio :改变Eden对象空间和残存空间的尺寸比例,意思是Eden对象空

间的尺寸比残存空间大survivorRatio+2倍(缺省值是10)

-XX:userParNewGC 可用来设置并行收集【多CPU】

-XX:ParallelGCThreads 可用来增加并行度【多CPU】

-XXUseParallelGC 设置后可以使用并行清除收集器【多CPU】

2.修改tomcat让其支持NIO

修改前:

protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>

修改成支持NIO的类型,配置如下 :

protocol="org.apache.coyote.http11.Http11NioProtocol " connectionTimeout="20000" redirectPort="8443" />

3.并发数设置

默认的tomcat配置,并发测试时,可能30个USER上去就当机了。

添加

 

maxThreads="600" //最大线程数

minSpareThreads="100" //初始化时创建的线程数

maxSpareThreads="500" //一旦线程超过这个值,Tomcat会关闭不需要的socket线程

acceptCount="700"//指定当所有可以使用的处理请求的线程数都被使用时,可以放到

处理队列中的请求数,超过这个数的请求将不予处理

connectionTimeout="20000"

redirectPort="8443" />

 

或者

name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="400" />

 

executor="tomcatThreadPool" port="80" protocol="HTTP/1.1" connectionTimeout="20000" enableLookups="false"

redirectPort="8443" URIEncoding="UTF-8" acceptCount="1000" />

4.Java虚拟机调优

应该选择SUN的JVM,在满足项目需要的前提下,尽量选用版本较高的JVM,一般来说高版本产品在速度和效率上比低版本会有改进。 JDK1.4比JDK1.3性能提高了近10%-20%,JDK1.5比JDK1.4性能提高25%-75%。

5.禁用DNS查询

设置enableLookups="false":

enableLookups="false" redirectPort="8443" URIEncoding="UTF-8" acceptCount="1000" />

 当web应用程序向要记录客户端的信息时,它也会记录客户端的IP地址或者通过域名服务器查找机器名转换为IP地址。DNS查询需要占用网络, 并且包括可能从很多很远的服务器或者不起作用的服务器上去获取对应的IP的过程,这样会消耗一定的时间。为了消除DNS查询对性能的影响我们可以关闭 DNS查询,方式是修改server.xml文件中的enableLookups参数值为false。

6.设置解决乱码问题

URIEncoding="UTF-8" acceptCount="1000" />

分享到:
评论

相关推荐

    Tomcat优化

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

    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