内存
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性能优化”意味着我们正在探讨如何提升Apache Tomcat服务器的运行效率,使其在处理Web应用时能够更快、更稳定地工作。Tomcat是一个开源的Java Servlet容器,广泛用于部署Java Web应用程序。 ...
本篇文章将聚焦于Tomcat6的性能优化,特别是关于NIO(非阻塞I/O)的使用以及并发量配置。 首先,让我们探讨一下NIO在Tomcat中的作用。传统的BIO(阻塞I/O)模型中,每个Web客户端的请求都会创建一个独立的线程,当...
### Tomcat7性能优化策略详解 #### 一、引言 在现代Web应用开发中,Tomcat作为一款广泛使用的开源...希望这些方法能够帮助开发者们更好地理解和掌握Tomcat性能优化的关键技术,从而为用户提供更加稳定高效的Web服务。
### Tomcat7 性能优化详解 #### 一、引言 随着互联网应用的日益增长,网站并发访问的需求越来越高,而作为一款广泛使用的开源Web容器,Apache Tomcat 的性能优化显得尤为重要。本文将针对Tomcat7进行一系列的性能...
配置优化是Tomcat性能优化的第一步,也是最基础的一步。首先,应该选择合适的Tomcat版本进行部署。当前版本的Tomcat,如Tomcat 9,性能更高且更稳定。部署时,应禁用ajp协议,因为在8.5.51之前的版本默认开启,但...
【Tomcat7性能优化】 Tomcat7性能优化的目的是提高网站的并发能力,确保服务器能够高效地处理更多用户的请求,从而提升用户体验。优化主要涉及服务器资源的管理和Tomcat的配置调整。 1. 服务器资源 服务器的硬件...
《深入探讨:Tomcat性能优化》 在Java Web开发领域,Tomcat作为一款广泛应用的开源Servlet容器,其性能优化对于提升整个Web应用的响应速度和处理能力至关重要。本篇文章将全面解析Tomcat性能优化的各个方面,帮助...
### Tomcat7 优化与性能调优 #### 一、引言 在现代Web应用开发中,Apache Tomcat因其轻量级、灵活且易于部署的特点成为开发者们的首选应用服务器之一。然而,在面对高并发访问场景时,如何有效地优化Tomcat以提高...
Tomcat性能优化 Tomcat 是一个流行的 Java Web 服务器,它的性能优化对网站的并发能力有着至关重要的影响。在本文中,我们将讨论 Tomcat 的性能优化方法,以提高网站的并发能力。 一、目的 通过优化 Tomcat,提高...
Tomcat性能优化与调优 Tomcat性能优化是指通过调整Tomcat服务器的配置和虚拟机参数,以提高Tomcat服务器的性能和可扩展性。Tomcat服务器的性能优化可以分为两类:外部环境调优和自身调优。 外部环境调优是指调整...
"Tomcat性能调优总结" Tomcat性能调优是指对 Tomcat 服务器的性能进行调整和优化,以提高其处理能力和响应速度。Tomcat 的性能调整可以分为两类:外部环境调整和自身调整。外部环境调整包括调整非 Tomcat 组件,如...
### Tomcat性能优化详解 #### 一、引言 在软件开发过程中,性能测试与分析是一个既复杂又关键的环节。这项工作不仅需要对技术有深入的理解,还需要具备一定的策略规划能力和对未知情况的应变能力。正如在棋类游戏...
然而,Tomcat 的性能优化却是许多开发者头疼的问题。为了帮助开发者解决这个问题,本文将介绍 Tomcat 优化方案的七个方面,分别是增加 JVM 堆内存大小、修复 JRE 内存泄漏、线程池设置、压缩、数据库性能调优、...
本文旨在介绍Tomcat性能调优的基本原理与具体实施方法,帮助技术人员更好地理解和优化Tomcat,提升其在各种应用场景下的性能表现。 #### 二、调优分类 由于Tomcat的运行高度依赖于Java虚拟机(JVM),我们可以将其...
1. 参数设置:优化JVM内存分配是提升Tomcat性能的关键。通常需要调整的参数包括`-Xms`(初始堆大小)、`-Xmx`(最大堆大小)、`-XX:NewRatio`(新生代与老年代的比例)、`-XX:SurvivorRatio`(年轻代中Eden区与...
【标题】:“Tomcat 8.5.56 X64 NIO2模式性能优化版+垃圾处理机制.zip”指的是一个特别针对Windows x64平台优化的Tomcat 8.5.56版本,该版本集成了NIO2(非阻塞I/O)模式,并对垃圾收集(Garbage Collection, GC)...
【Tomcat性能优化笔记】 Tomcat作为一款广泛应用的开源Java Servlet容器,其性能优化对于提升Web应用的整体效能至关重要。优化工作主要分为两大部分:外部环境调整和Tomcat自身的配置优化。 1. **外部环境优化** ...