qileilove

blog已经转移至github,大家请访问 http://qaseven.github.io/

性能测试时,tomcat配置优化

性能测试时,tomcat配置优化

Tomcat连接数设置(建议的设置,可根据服务器的实际性能进行更改)

tomcat配置文件server.xml中的配置中,和连接数相关的参数有:

1 maxThreadsTomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。portal预置值300

2 acceptCount指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。portal预置值50

3 minSpareThreadsTomcat初始化时创建的线程数。portal预置值25

4 maxSpareThreads一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。portal预置值75

5 connnectionTimeout网络连接超时,默认值60000,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。portal预置值为30000毫秒。

6 maxKeepAliveRequests保持请求数量,portal预置值100

7  bufferSize输入流缓冲大小,portal预置值2048 bytes

把端口的配置替换为如下的内容,可以提高tomcat的性能,并且同时关闭tomcat的打印信息。
可以复制下面的代码进行粘贴后修改:

  <Connector port="80" maxHttpHeaderSize="8192" useBodyEncodingForURI="true"  
               maxThreads="300" minSpareThreads="25" maxSpareThreads="75"  
               enableLookups="false" redirectPort="8443" acceptCount="100"  
               compression="off" compressionMinSize="2048"   
compressableMimeType="text/html,text/xml,text/css,text/plain"  
               connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>


二,如果在性能测试中发现有tomcat内存溢出的错误,就需要加大虚拟内存了。

Tomcat默认可以使用的内存为128MB,Windows,在文件/bin/catalina.batUnix下,在文件/bin/catalina.sh的前面,增加如下设置:JAVA_OPTS='-Xms【初始化内存大小】-Xmx【可以使用的最大内存】'需要把这个两个参数值调大。例如:JAVA_OPTS='-Xms256m -Xmx512m'表示初始化内存为256MB,可以使用的最大内存为512MB(普通PC机作为服务器下建议用此配置)。

从实际应用的角度来说。-Xmx大了不是很好,垃圾回收需要更多的时间,但是thread问题就很大,配给JVM的内存数越大,tomcat所能开的thread数就越小,最后出现ava.lang.OutOfMemoryError: unable to create new native thread

如果给jvm分配过多,剩余供OS使用,其中windowsdll占了一部分,但是你在JVM创建线程的时候,创建的是OS的线程,他要从剩余的空间中分配内存。如果没有可用内存,出现上述错误。

如果是刀片4核,8G内存的服务器,如果布置两个tomcattomcat预置值建议可以设置为JAVA_OPTS='-Xms512m –Xmx1024m'

posted on 2011-10-31 15:52 顺其自然EVO 阅读(1982) 评论(0)  编辑  收藏 所属分类: 测试学习专栏

<2011年10月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

导航

统计

常用链接

留言簿(55)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜