线上enterprise app的配置

 线上的connector配置

 <Connector port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol"

               connectionTimeout="20000"

               redirectPort="8443" 

               maxThreads="8000"   

               minSpareThreads="70"  

               acceptCount="6000" 

               disableUploadTimeout="true" 

               enableLookups="false"   

               URIEncoding="UTF-8" />

扫描二维码关注公众号,回复: 305363 查看本文章

minSpareThreads Tomcat初始化时创建的线程数。  

maxThreads  最大线程数

...

其它都是基于默认

URIEncoding:

查看$TOMCAT_HOME/webapps/tomcat-docs/config/http.html这个说明文档,有如下说明: 

URIEncoding:This specifies the character encoding used to decode the URI bytes, after %xx decoding the URL.

 If not specified, ISO-8859-1 will be used.

--------------------------------------------------------------------------------------

maxThreads到底调整为多少是合适的?

现在线上配置的是8000,我觉的不够合理,4000可以了(2048太小了,步子迈的太大,容易扯到东西)

一个原则:合理的maxThreads依赖于实际压测的效果和科学理论

将压测效果放在科学理论前面-------证明了一切要以事实为依据

科学理论:

1 系统容量 (正常场景,极端场景)  正常场景下,线程数<200, 放大10倍。2048 < 4000

2 资源数,线程数和资源数(数据库连接,http连接,关联系统的),关联系统的容量相匹配,

   数据连接池 400

   http连接池      1024

   当线程达到了4K后,不大可能都处于运行态,可能都是在等数据库连接,可能在等HTTP连接,要么在等应答此时增加线程数意义不大,而且考虑到我们有12台机器,12*4K=48K,线程数已经是相当的多了

压测效果:  

压测的业务有自己的业务特征

                  需要一个完善的集成环境做压测,只是压测单台机器是不够的

                 空转压测,测算出容量的上限,空转的是最简单的业务

-----------------------------------------

猜你喜欢

转载自curious.iteye.com/blog/2308215