1.Java虚拟机调优
应该选择SUN的JVM,在满足项目需要的前提下,尽量选用版本较高的JVM,一般来说高版本产品在速度和效率上比低版本会有改进。 JDK1.4比JDK1.3性能提高了近10%-20%,JDK1.5比JDK1.4性能提高25%-75%。
2.内存设置 VM参数调优
-Xms<size> 表示JVM初始化堆的大小,-Xmx<size>表示JVM堆的最大值。这两个值的大小一般根据需要进行设置。当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。因此一般建议堆的最大值设置为可用内存的最大值的80%。表示初始化内存为256MB,可以使用的最大内存为512MB。
Windows环境下修改“%TOMCAT_HOME%\bin\catalina.bat”文件,在文件开头增加如下设置:
set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m
一定加在catalina.bat最前面。
Linux环境下修改“%TOMCAT_HOME%\bin\catalina.sh”文件,在文件开头增加如下设置:
JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m -Duser.timezone=Asia/Shanghai"
注意:前后二者区别,有无set,有无双引号。
3.HTTP优化配置 server.xml
<Connector
port="8080"
enableLookups="false"
disableUploadTimeout="true"
useBodyEncodingForURI="true"
URIEncoding="UTF-8"
maxHttpHeaderSize="8192"
maxThreads="600"
minSpareThreads="100"
maxSpareThreads="500"
acceptCount="700"
connectionTimeout="20000"
keepAliveTimeout="15000"
maxKeepAliveRequests="1"
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
redirectPort="8443"
/>
引用
maxThreads:Tomcat可创建的最大的线程数。
acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。
minSpareThreads:Tomcat初始化时创建的线程数。
maxSpareThreads:一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
connnectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
keepAliveTimeout - 长连接最大保持时间(毫秒)。此处为15秒。
maxKeepAliveRequests - 最大长连接个数(1表示禁用,-1表示不限制个数,默认100个。一般设置在100~200之间)
maxHttpHeaderSize - http请求头信息的最大程度,超过此长度的部分不予处理。一般8K。
disableUploadTimeout - 上传时是否使用超时机制
enableLookups - 是否反查域名,取值为:true或false。为了提高处理能力,应设置为false
3.1禁用DNS查询
当web应用程序向要记录客户端的信息时,它也会记录客户端的IP地址或者通过域名服务器查找机器名转换为IP地址。DNS查询需要占用网络,并且包括可能从很多很远的服务器或者不起作用的服务器上去获取对应的IP的过程,这样会消耗一定的时间。为了消除DNS查询对性能的影响我们可以关闭DNS查询,方式是修改server.xml文件中的enableLookups参数值为false:
acceptCount>
maxThreads>maxSpareThreads>minSpareThreads
这张图说的和上面不一样,
maxThreads>
acceptCount>maxSpareThreads>minSpareThreads
倾向于后者是对的。
3.2 调整线程数
Tomcat使用线程来处理接收的每个请求,使用线程池加速响应速度来处理请求。
3.3 APR库使用
Tomcat中使用APR库,其实就是在Tomcat中使用JNI的方式来读取文件以及进行网络传输。可以大大提升Tomcat对静态文件的处理性能,同时如果你使用了HTTPS方式传输的话,也可以提升SSL的处理性能。 一般在Windows下,可以直接下载编译好的二进制版本的dll库文件来使Tomcat启用APR,一般建议拷贝库文件tcnative-1.dll到Tomcat的bin目录下。而在Linux下,可以直接解压和安装bin目录下的tomcat_native.tar.gz文件,编译之前要确保apr库已经安装。 怎么才能判断Tomcat是否已经启用了APR库呢?方法是通过看Tomcat的启动日志:
如果没有启用APR,则启动日志一般有这么一条:
引用
org.apache.coyote.http11.Http11Protocol start
如果启用了APR,则这条日志就会变成:
org.apache.coyote.http11.Http11AprProtocol start
tcnative-1.dll 下载地址:http://tomcat.heanet.ie/native/
3.4 配制gzip压缩
gzip 压缩就是为了提高访问网站的速度,即站点上要传给浏览器的网页内容先进行压缩,然后通过网络传给客户端的浏览器,客户端的浏览器再进行解压,并显示给用户。
引用
compression="on" 打开压缩功能
compressionMinSize="2048" 启用压缩的输出内容大小,这里面默认为2KB
noCompressionUserAgents="gozilla, traviata" 压对于以下的浏览器,不启用缩
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" 要压缩的文件类型
通过firebug 可以看到响应头的信息:
加入前:
引用
Server Apache-Coyote/1.1
Content-Type text ml;charset=UTF-8
Content-Length 2063
Date Thu, 05 May 2011 01:35:55 GMT
加入后:
引用
Server Apache-Coyote/1.1
Content-Type text ml;charset=UTF-8
Transfer-Encoding chunked
Content-Encoding gzip
Vary Accept-Encoding
Date Thu, 05 May 2011 01:38:13 GMT
还可以通过在线网站去测试:
引用
http://gzip.iamzz.com/
http://tool.chinaz.com/Gzips/
与内存相关的tomcat错误处理:
内存的永久保存区域不足引起
1.java.lang.OutOfMemoryError:这个错误是因为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\Procrun 2.0\Tomcat6\Parameters\Java中的 Options参数,在后面增加一下数据:
引用
-XX:PermSize=64M
-XX:MaxPermSize=128m
JVM堆空间不足
2.java.lang.OutOfMemoryError: Java heap space Heap size 设置 JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。使用前面所说的方法进行调整即可
- 大小: 86 KB
分享到:
相关推荐
【标签】:“Tomcat优化”进一步确认了我们要关注的是Tomcat的整体优化策略,这包括但不限于启动速度、并发能力、内存使用效率等方面。 【文件】:“Tomcat7性能优化调优.docx”可能包含了关于Tomcat7性能优化的...
3. **多线程模型**:Tomcat 6优化了其多线程模型,提高了并发性能,这对于高流量的Web应用程序来说尤为重要。 4. **连接器(Connector)组件**:Tomcat 6引入了新的连接器组件,如NIO(非阻塞I/O),提供更高的并发...
《深入探讨:Tomcat性能优化》 在Java Web开发领域,Tomcat作为一款广泛应用的开源Servlet容器,其性能优化对于提升整个Web应用的响应速度和处理能力至关重要。本篇文章将全面解析Tomcat性能优化的各个方面,帮助...
在进行Tomcat优化时,需要从多个维度入手,包括但不限于配置优化、部署与测试、参数调整、源码理解以及JVM参数调整等。 配置优化是Tomcat性能优化的第一步,也是最基础的一步。首先,应该选择合适的Tomcat版本进行...
【Tomcat集群优化详细配置】 在IT行业中,服务器性能优化是一项关键任务,特别是在高并发、大规模用户访问的场景下。Tomcat,作为广泛使用的Java应用服务器,常常需要通过集群部署来提升系统的可用性和可伸缩性。...
《Tomcat启动优化与并发优化配置详解》 Tomcat,作为Java Web应用最常用的服务器,其性能优化对于提升系统整体效率至关重要。本文将深入探讨Tomcat的启动优化和并发优化配置,帮助开发者们更好地理解并实践这些关键...
tomcat的优化,配置之后能很大的提高你的项目速度!!
#### 三、Tomcat优化配置详解 ##### 3.1 配置Tomcat管理员账户 为了更好地管理和监控Tomcat服务器,首先需要设置管理员账户。在`conf/tomcat-users.xml`文件中添加用户角色,如下所示: ```xml ...
【Tomcat7优化】 Tomcat7是Apache Tomcat服务器的一个版本,主要负责运行Java Servlets和JavaServer Pages(JSP)。优化Tomcat7的目标是为了提高网站的并发处理能力,确保在高流量环境下仍然能保持良好的响应速度和...
6. **性能优化**:Tomcat6可以通过调整线程池大小、JVM堆大小、连接器参数等进行性能优化。例如,增大MaxThreads和MinSpareThreads以处理更多并发请求,设置合理的MaxKeepAliveRequests防止资源耗尽。 7. **故障...
很好的TOMCAT-5.5.X优化配置文档,详细说明了各个的参数设置
【标题】:“Tomcat性能优化” 【描述】:“理解Tomcat内部结构,提升其运行效率” 【标签】:“Tomcat 性能 优化” 【正文】: Tomcat性能优化是一项关键的任务,尤其对于承载大型应用的服务器来说。优化主要...
tomcat是经过优化配置的,下载根据自己内存大小好修改即可使用,下载后打(windows)开/bin/catalina.bat (linux)/bin/catalina.sh 下JAVA_OPTS= 后面内存参数修改即可 ;/conf/server.xml 已配置三种模式(bio/nio/...
### Tomcat7 性能优化详解 #### 一、引言 随着互联网应用的日益增长,网站并发访问的需求越来越高,而作为一款广泛使用的开源Web容器,Apache Tomcat 的性能优化显得尤为重要。本文将针对Tomcat7进行一系列的性能...
### Tomcat7 优化与性能调优 #### 一、引言 在现代Web应用开发中,Apache Tomcat因其轻量级、灵活且易于部署的特点成为开发者们的首选应用服务器之一。然而,在面对高并发访问场景时,如何有效地优化Tomcat以提高...
【标题】"Tomcat6 纯净版" 指的是Apache Tomcat服务器软件的第6个主要版本的一个纯净安装包。Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目,它是一个开源的、免费的应用服务器,主要用于运行Java Servlet...
Tomcat 优化方案 Tomcat 是一个流行的 Java 服务器,广泛应用于 Web 应用程序的开发中。然而,Tomcat 的性能优化却是许多开发者头疼的问题。为了帮助开发者解决这个问题,本文将介绍 Tomcat 优化方案的七个方面,...
6. 网络性能:检查网络带宽和延迟,优化网络配置,如TCP/IP参数调优,使用更快的SSL/TLS协议。 三、监控与调试 1. 监控工具:使用JVisualVM、VisualVM或JMX进行性能监控,观察CPU、内存、线程和GC状况。 2. 堆内存...
Apache Tomcat 6是一款广泛应用的开源Java Servlet容器,它实现了Java EE中的Servlet和JSP规范。这个源码包,"apache-...同时,对于希望优化Tomcat性能或者解决特定问题的开发者来说,直接查看源码是十分有价值的。