`
peterwanghao
  • 浏览: 128568 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Tomcat6性能优化

 
阅读更多

内存

Windows下,在文件{tomcat_home}/bin/catalina.bat的前面,增加如下设置:

set JAVA_OPTS=-XX:PermSize=128M-XX:MaxPermSize=256m -Xms1024m -Xmx1024m -Xmn256m

一定加在catalina.bat最前面,即set "CURRENT_DIR=%cd%"前面

linux下,在文件{tomcat_home}/bin/catalina.sh的前面增加

JAVA_OPTS="-XX:PermSize=128M-XX:MaxPermSize=256m –Xms1024m -Xmx1024m -Duser.timezone=Asia/Shanghai"

注意:前后二者区别,有无set,有无双引号

-Xms设置初始化内存大小

-Xmx设置可以使用的最大内存
-Xmn
:内存最小值,-Xmn128-256m就够了

JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、 -Xmx相等以避免在每次GC 后调整堆的大小。

常见的问题是报Tomcat内存溢出错误“java.lang.OutOfMemoryError: Javaheap space”,从而导致客户端显示500错误。Heap size 的大小是Young Generation 和Tenured Generaion 之和。提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。

java.lang.OutOfMemoryError:PermGen space这个错误是因为tomcat JVM的Permanent Generation space(内存的永久保存区域)不足引起的,这个区域是JVM用于用于存放Class和Meta的信息的内存区域,GC(Garbage Collection)不会在主程序运行期对 PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误, 这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了,症状是tomcat运行一段时间后失去反应,服务中tomcat服务正常,重启 tomcat服务后网站又正常响应了。解决方案是人工调整确认大小设置,使用regedit修改注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun2.0\Tomcat6\Parameters\Java中的 Options参数,在后面增加一下数据:

-XX:PermSize=128M

-XX:MaxPermSize=256m

操作系统

默认windows下打开文件数是2000;在linux下是1024;

vi /etc/profile 加入ulimit -n4096就把linux改成打开文件最大数为4096

禁用DNS查询

为了消除DNS查询对性能的影响我们可以关闭DNS查询,方式是修改server.xml文件中的enableLookups参数值。

web下不显示目录列表

在web.xml中把listings改成false就行了

配置/conf/server.xml

<Connector port="8080"protocol="HTTP/1.1"

maxThreads="600"

minSpareThreads="100"

maxSpareThreads="500"

acceptCount="700"

connectionTimeout="30000"

keepAliveTimeout="15000"

maxKeepAliveRequests="1"

maxHttpHeaderSize="8192"

URIEncoding="UTF-8"

enableLookups="false"

disableUploadTimeout="true"

redirectPort="8443"/>

说明

connectionTimeout - 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒

keepAliveTimeout- 长连接最大保持时间(毫秒)。此处为15秒

maxKeepAliveRequests- 最大长连接个数(1表示禁用,-1表示不限制个数,默认100个。一般设置在100~200之间) the maximum number of HTTPrequests that can be held in thepipeline until the connection is closed by the server. Setting this attributeto 1 disablesHTTP/1.0 keep-alive, as well as HTTP/1.1 keep-alive and pipelining.Setting this to -1 allows an unlimited number of pipelined orkeep-aliveHTTP requests. If not specified, this attribute is set to 100

maxHttpHeaderSize- http请求头信息的最大程度,超过此长度的部分不予处理。一般8K

URIEncoding - 指定Tomcat容器的URL编码格式

acceptCount - 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理,默认为10个。

disableUploadTimeout- 上传时是否使用超时机制

enableLookups - 是否反查域名,取值为:true或false。为了提高处理能力,应设置为false

bufferSize -defines the size (in bytes) of the buffer to be provided for input streamscreated by this connector. By default,buffers of 2048 bytes are provided.

minSpareThreads - 最小空闲线程数,Tomcat初始化时创建的线程数。Thedefault value is 4

maxSpareThreads - 做多空闲连接数,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。The default value is50

maxThreads - 最多同时处理的连接数,Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。If not specified, this attribute is set to 200。maxthread太多,导致切换过多,性能下降严重。这个数量应该是你单个机器的承载能力,压力测试下得出的结果。不可任意加大。一般情况下, 256-512个已经非常高的数值了。


分享到:
评论

相关推荐

    Tomcat性能优化

    【标题】:“Tomcat性能优化”意味着我们正在探讨如何提升Apache Tomcat服务器的运行效率,使其在处理Web应用时能够更快、更稳定地工作。Tomcat是一个开源的Java Servlet容器,广泛用于部署Java Web应用程序。 ...

    Tomcat6性能优化(小结).pdf

    本篇文章将聚焦于Tomcat6的性能优化,特别是关于NIO(非阻塞I/O)的使用以及并发量配置。 首先,让我们探讨一下NIO在Tomcat中的作用。传统的BIO(阻塞I/O)模型中,每个Web客户端的请求都会创建一个独立的线程,当...

    Tomcat7性能优化

    ### Tomcat7性能优化策略详解 #### 一、引言 在现代Web应用开发中,Tomcat作为一款广泛使用的开源...希望这些方法能够帮助开发者们更好地理解和掌握Tomcat性能优化的关键技术,从而为用户提供更加稳定高效的Web服务。

    Tomcat7 性能优化

    ### Tomcat7 性能优化详解 #### 一、引言 随着互联网应用的日益增长,网站并发访问的需求越来越高,而作为一款广泛使用的开源Web容器,Apache Tomcat 的性能优化显得尤为重要。本文将针对Tomcat7进行一系列的性能...

    tomcat性能优化.pdf

    配置优化是Tomcat性能优化的第一步,也是最基础的一步。首先,应该选择合适的Tomcat版本进行部署。当前版本的Tomcat,如Tomcat 9,性能更高且更稳定。部署时,应禁用ajp协议,因为在8.5.51之前的版本默认开启,但...

    Tomcat7性能优化.docx

    【Tomcat7性能优化】 Tomcat7性能优化的目的是提高网站的并发能力,确保服务器能够高效地处理更多用户的请求,从而提升用户体验。优化主要涉及服务器资源的管理和Tomcat的配置调整。 1. 服务器资源 服务器的硬件...

    Tomcat性能优化.rar

    《深入探讨:Tomcat性能优化》 在Java Web开发领域,Tomcat作为一款广泛应用的开源Servlet容器,其性能优化对于提升整个Web应用的响应速度和处理能力至关重要。本篇文章将全面解析Tomcat性能优化的各个方面,帮助...

    tomcat7 优化 性能调优

    ### Tomcat7 优化与性能调优 #### 一、引言 在现代Web应用开发中,Apache Tomcat因其轻量级、灵活且易于部署的特点成为开发者们的首选应用服务器之一。然而,在面对高并发访问场景时,如何有效地优化Tomcat以提高...

    tomcat性能优化

    Tomcat性能优化 Tomcat 是一个流行的 Java Web 服务器,它的性能优化对网站的并发能力有着至关重要的影响。在本文中,我们将讨论 Tomcat 的性能优化方法,以提高网站的并发能力。 一、目的 通过优化 Tomcat,提高...

    tomcat性能优化,调优

    Tomcat性能优化与调优 Tomcat性能优化是指通过调整Tomcat服务器的配置和虚拟机参数,以提高Tomcat服务器的性能和可扩展性。Tomcat服务器的性能优化可以分为两类:外部环境调优和自身调优。 外部环境调优是指调整...

    tomcat性能调优总结

    "Tomcat性能调优总结" Tomcat性能调优是指对 Tomcat 服务器的性能进行调整和优化,以提高其处理能力和响应速度。Tomcat 的性能调整可以分为两类:外部环境调整和自身调整。外部环境调整包括调整非 Tomcat 组件,如...

    Tomcat性能优化.pdf

    ### Tomcat性能优化详解 #### 一、引言 在软件开发过程中,性能测试与分析是一个既复杂又关键的环节。这项工作不仅需要对技术有深入的理解,还需要具备一定的策略规划能力和对未知情况的应变能力。正如在棋类游戏...

    tomcat优化

    然而,Tomcat 的性能优化却是许多开发者头疼的问题。为了帮助开发者解决这个问题,本文将介绍 Tomcat 优化方案的七个方面,分别是增加 JVM 堆内存大小、修复 JRE 内存泄漏、线程池设置、压缩、数据库性能调优、...

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

    本文旨在介绍Tomcat性能调优的基本原理与具体实施方法,帮助技术人员更好地理解和优化Tomcat,提升其在各种应用场景下的性能表现。 #### 二、调优分类 由于Tomcat的运行高度依赖于Java虚拟机(JVM),我们可以将其...

    tomcat7.0性能优化-挑战极限精简版

    1. 参数设置:优化JVM内存分配是提升Tomcat性能的关键。通常需要调整的参数包括`-Xms`(初始堆大小)、`-Xmx`(最大堆大小)、`-XX:NewRatio`(新生代与老年代的比例)、`-XX:SurvivorRatio`(年轻代中Eden区与...

    tomcat8.5.56_X64_nio2模式性能优化版+垃圾处理机制.zip

    【标题】:“Tomcat 8.5.56 X64 NIO2模式性能优化版+垃圾处理机制.zip”指的是一个特别针对Windows x64平台优化的Tomcat 8.5.56版本,该版本集成了NIO2(非阻塞I/O)模式,并对垃圾收集(Garbage Collection, GC)...

    Tomcat性能优化笔记

    【Tomcat性能优化笔记】 Tomcat作为一款广泛应用的开源Java Servlet容器,其性能优化对于提升Web应用的整体效能至关重要。优化工作主要分为两大部分:外部环境调整和Tomcat自身的配置优化。 1. **外部环境优化** ...

Global site tag (gtag.js) - Google Analytics