Tomcat6终极优化
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Tomcat6内存和线程配置
当在对其进行并发测试时,基本上30个USER上去就当机了,还要修改默认连接数设置:以下红色四行TOMCAT6中好相没有,手工加上就可以了,基本上可以解决连接数过大引起的死机。具体数值可跟据实际情况设置
maxThreads="600" minSpareThreads="100" maxSpareThreads="500" acceptCount="700" connectionTimeout="20000" redirectPort="8443"/> 这样设置以后,基本上没有再当机过。。。。。 maxThreads="600"///最大线程数 minSpareThreads="100"///初始化时创建的线程数 maxSpareThreads="500"///一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。 acceptCount="700"//指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理 Tomcat6使用安装版本进行安装后,使用内存的调整无法利用修改启动文件的方式进行,但按缺省方式启动后如果启动的应用较多的话Tomcat经常会因为内存不足而失去响应,这个时候必须人工调整内存参数: 1.“开始”--“Apache Tomcat6”--“Configure Tomcat” 2.选择Java标签,在“Initial memory pool(初始内存)”和“Maximum memory pool(最大内存)”中输入你 需要的内存参数即可 与内存相关的tomcat错误处理: ng.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 ng.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值。使用前面所说的方法进行调整即可 =================== Tomcat内存、连接数等性能参数设置 默认参数不适合生产环境使用,因此需要修改一些参数 1、修改启动时内存参数、并指定JVM时区(在windows server2008下时间少了8个小时): 在Tomcat上运行j2ee项目代码时,经常会出现内存溢出的情况,解决办法是在系统参数中增加系统参数: window下,在catalina.bat最前面: set JA V A_OPTS=-XX:PermSize=64M-XX:MaxPermSize=128m-Xms512m-Xmx1024m 一定加在catalina.bat最前面。 linux下,在catalina.sh最前面增加: JA V A_OPTS="-XX:PermSize=64M-XX:MaxPermSize=128m-Xms512m-Xmx1024m -Duser.timezone=Asia/Shanghai" 注意:前后二者区别,有无set,有无双引号。 2、线程池配置(Tomcat6下) 使用线程池,用较少的线程处理较多的访问,可以提高tomcat处理请求的能力。使用方式: 首先。打开/conf/server.xml,增加 maxThreads="500"minSpareThreads="20"maxIdleTime="60000"/> 最大线程500(一般服务器足以),最小空闲线程数20,线程最大空闲时间60秒。 然后,修改