1. Tomcat的JVM 配置
错误提示1:java.lang.OutOfMemoryError: Java heap space
原因:
Tomcat默认可以使用的内存为128MB
由于运行时内存过大抛出Out of Memory(系统内存不足)的异常
解决方法:
修改“%TOMCAT_HOME%\bin\catalina.bat”文件,在文件开头增加如下设置:set JAVA_OPTS=-Xms(JVM初始化堆的大小) –Xmx(JVM堆的最大值)
分析
另外需要考虑的是Java提供的垃圾回收机制。虚拟机的堆大小决定了虚拟机花费在收集垃圾上的时间和频度。收集垃圾可以接受的速度与应用有关,应该通过分析实际的垃圾收集的时间和频率来调整。如果堆的大小很大,那么完全垃圾收集就会很慢,但是频度会降低。如果你把堆的大小和内存的需要一致,完全收集就很快,但是会更加频繁。调整堆大小的的目的是最小化垃圾收集的时间,以在特定的时间内最大化处理客户的请求。在基准测试的时候,为保证最好的性能,要把堆的大小设大,保证垃圾收集不在整个基准测试的过程中出现。
如果系统花费很多的时间收集垃圾,请减小堆大小。一次完全的垃圾收集应该不超过 3-5 秒。如果垃圾收集成为瓶颈,那么需要指定代的大小,检查垃圾收集的详细输出,研究垃圾收集参数对性能的影响。一般说来,你应该使用物理内存的 80%作为堆大小。当增加处理器时,记得增加内存,因为分配可以并行进行,而垃圾收集不是并行的。
错误提示2:java.lang.OutOfMemoryError: PermGen space
原因:
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存
放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的
Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用
中有很CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的
时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信
解决方法:
在catalina.bat的第一行增加:
set JAVA_OPTS=-Xms(JVM初始化堆的大小) –Xmx(JVM堆的最大值) -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m
在catalina.sh的第一行增加:
JAVA_OPTS=-Xms(JVM初始化堆的大小) –Xmx(JVM堆的最大值) -XX:PermSize=128M -XX:MaxNewSize=256m -
XX:MaxPermSize=256m
分析
堆的尺寸
-Xmssize in bytes
设定Java堆的初始尺寸,缺省尺寸是2097152 (2MB)。这个值必须是1024个字节(1KB)的倍数,且比它大。(-server选项把缺省尺寸增加到32M。)
-Xmnsize in bytes
为Eden对象设定初始Java堆的大小,缺省值为640K。(-server选项把缺省尺寸增加到2M。)
-Xmxsize in bytes
设定Java堆的最大尺寸,缺省值为64M,(-server选项把缺省尺寸增加到128M。) 最大的堆尺寸达到将近2GB(2048MB)。
请注意:很多垃圾收集器的选项依赖于堆大小的设定。请在微调垃圾收集器使用内存空间的方式之前,确认是否已经正确设定了堆的尺寸。
垃圾收集:内存的使用
-XX:MinHeapFreeRatio=percentage as a whole number
修改垃圾回收之后堆中可用内存的最小百分比,缺省值是40。如果垃圾回收后至少还有40%的堆内存没有被释放,则系统将增加堆的尺寸。
-XX:MaxHeapFreeRatio=percentage as a whole number
改变垃圾回收之后和堆内存缩小之前可用堆内存的最大百分比,缺省值为70。这意味着如果在垃圾回收之后还有大于70%的堆内存,则系统就会减少堆的尺寸。
-XX:NewSize=size in bytes
为已分配内存的对象中的Eden代设置缺省的内存尺寸。它的缺省值是640K。(-server选项把缺省尺寸增加到2M。)
-XX: MaxNewSize=size in bytes
允许您改变初期对象空间的上限,新建对象所需的内存就是从这个空间中分配来的,这个选项的缺省值是640K。(-server选项把缺省尺寸增加到2M。)
-XX:NewRatio=value
改变新旧空间的尺寸比例,这个比例的缺省值是8,意思是新空间的尺寸是旧空间的1/8。
-XX:SurvivorRatio=number
改变Eden对象空间和残存空间的尺寸比例,这个比例的缺省值是10,意思是Eden对象空间的尺寸比残存空间大survivorRatio+2倍。
-XX:TargetSurvivorRatio=percentage
设定您所期望的空间提取后被使用的残存空间的百分比,缺省值是50。
-XX:MaxPermSize=size in MB
长久代(permanent generation)的尺寸,缺省值为32(32MB)
分享到:
相关推荐
### Tomcat7性能优化策略详解 #### 一、引言 在现代Web应用开发中,Tomcat作为一款广泛使用的开源...希望这些方法能够帮助开发者们更好地理解和掌握Tomcat性能优化的关键技术,从而为用户提供更加稳定高效的Web服务。
【Tomcat性能优化笔记】 Tomcat作为一款广泛应用的开源Java Servlet容器,其性能优化对于提升Web应用的整体效能至关重要。优化工作主要分为两大部分:外部环境调整和Tomcat自身的配置优化。 1. **外部环境优化** ...
### Tomcat7 性能优化详解 #### 一、引言 随着互联网应用的日益增长,网站并发访问的需求越来越高,而作为一款广泛使用的开源Web容器,Apache Tomcat 的性能优化显得尤为重要。本文将针对Tomcat7进行一系列的性能...
【Tomcat性能优化】 在大型应用项目中,Tomcat的默认内存配置往往不足以应对复杂的运行需求,这可能导致系统出现各种问题。最常见的问题之一是“java.lang.OutOfMemoryError: Java heap space”错误,这是由于Java...
Tomcat 7是一个重要的升级,它支持Servlet 3.0、JSP 2.2和EL 2.2规范,引入了更多功能和性能优化。此版本增加了异步处理能力,增强了安全管理,支持更多的MIME类型,并且提供了更好的错误报告。对于需要使用新特性的...
【标题】:“Tomcat 8.5.56 X64 NIO2模式性能优化版+垃圾处理机制.zip”指的是一个特别针对Windows x64平台优化的Tomcat 8.5.56版本,该版本集成了NIO2(非阻塞I/O)模式,并对垃圾收集(Garbage Collection, GC)...
安全与性能优化** 为了提高安全性,记得定期更新Tomcat到最新版本。同时,可以通过调整JVM内存设置、限制并发连接数、启用HTTPS等方法来优化性能。 以上就是在Windows系统上安装和配置Apache Tomcat 9.0.13的基本...
本文旨在介绍Tomcat性能调优的基本原理与具体实施方法,帮助技术人员更好地理解和优化Tomcat,提升其在各种应用场景下的性能表现。 #### 二、调优分类 由于Tomcat的运行高度依赖于Java虚拟机(JVM),我们可以将其...
这种问题可以通过配置 Tomcat 的配置文件解决,例如在 Windows 下的 catalina.bat 或 Linux 下的 catalina.sh 文件中增加 JVM 堆内存大小。例如: ``` JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -...
在IT行业中,服务器性能优化是一项关键任务,特别是在高并发、大规模用户访问的场景下。Tomcat,作为广泛使用的Java应用服务器,常常需要通过集群部署来提升系统的可用性和可伸缩性。集群优化旨在提高系统的响应速度...
在Windows环境下,Tomcat监控器是一个非常重要的工具,它能够帮助管理员实时监控和管理Apache Tomcat服务器的状态,确保服务的稳定运行。这篇文章将详细介绍如何在Windows下使用Tomcat监控器,以及它的一些核心功能...
10. **性能优化**:根据需求,可以调整Tomcat的JVM参数,如内存分配、线程池大小等,以优化服务器性能。 11. **监控与管理**:使用内置的Manager App(在`http://localhost:8080/manager/html`)可以远程管理应用...
常见的Tomcat性能优化策略包括: 1. 调整JVM参数:例如,增加堆内存(-Xms和-Xmx)、设置新生代和老年代大小(-XX:NewRatio, -XX:SurvivorRatio)以及开启垃圾回收优化(-XX:+UseConcMarkSweepGC, -XX:+UseParNewGC...
### Tomcat 安全配置与性能优化 #### 一、Tomcat内存优化 ##### 1. JAVA_OPTS 参数说明 在进行Tomcat的性能优化时,内存优化是非常关键的一部分。这通常涉及对Tomcat启动参数的调整,特别是设置`JAVA_OPTS`参数。...
【标题】"tomcat6到8windows版本.zip" 涵盖了三个不同版本的Apache Tomcat,分别是Tomcat 6、Tomcat 7和Tomcat 8.5,这些都是针对Windows操作系统设计的64位版本。Apache Tomcat是一款开源的Java Servlet容器,主要...
在 Windows 环境下配置 Nginx 作为 Tomcat 的反向代理服务器是一项常见的任务,主要用于实现负载均衡、提高安全性及提升性能等目的。本文将从下载 Nginx 开始,详细介绍如何在 Windows 系统上完成这一配置。 #### ...
2. **性能优化**:新版本可能对内部算法和数据结构进行了优化,提高了服务器响应速度和资源利用率。 3. **兼容性提升**:与Java版本的兼容性得到改善,支持最新的Java开发工具和标准,如Java SE 8、9、10及以上。 ...
"win系统下的tomcat日志按日期切割工具"指的是在Windows环境下对Tomcat日志进行自动切割的解决方案。通常,Linux系统中有一个名为`logrotate`的工具用于此目的,但在Windows上,我们可以使用类似功能的`cronolog`...