"
一个项目用tomcat作为服务器,主要手机接口。大约500台手机并发量。tomcat里面的busy thread一直在增,直到挂掉。如图:<img src=""http://static.oschina.net/uploads/space/2016/0727/205235_OI0G_588216.png"" alt="""" />
求各位大牛指点。
tomcat server.xml 大致配置如下:
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="5000" maxIdleTime="60000"
minSpareThreads="100"/>
<Connector executor="tomcatThreadPool" port="8090"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="5000" processorCache="50000"
minSpareThreads="100" acceptorThreadCount="8"
enableLookups="false" redirectPort="8443" acceptCount="5000"
connectionTimeout="60000" keepAliveTimeout="60000"
maxKeepAliveRequests="100"
disableUploadTimeout="true"
URIEncoding="UTF-8"
compression="on" compressionMinSize="4096"
/>
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
"500根本不大,没有达到tomcat的极限的,所以看你业务的。。业务代码有问题,50个不也照样跑满么######的确,代码问题。######一台tomcat 通常分配500个请求的,你可以用nginx 做代理转发,后端起多个tomcat######回复 <a href=""http://my.oschina.net/295117485"" class=""referer"" target=""_blank"">@-Jacen- : 我测试出来windows 下没很大差别######昨天问了一个朋友,说windows下apache比nginx性能高。是这样吗?######超时时间太长了,你这样直接就把服务器拖死了######你说的超时时间是指connectionTimeout 还是keepAliveTimeout######
如何定义高并发?
上线前酝酿一下最高的并发请求数,针对请求数做2/8法则,
压力测试单台容器能支撑多久...
最后建议搞集群把...分担压力.
######nginx在前面,毕竟tomcat并不是为大并发设计的!还有,你的每个请求运行逻辑不要太复杂,不要占用过长时间######500台手机在线,真正的并发约为20-40%之间,一台tomcat完全可以抗的住,修改tomcat的连接数同时看下OS的文件打开数限制,另外开始压缩,最好前面用nginx反向代理######回复 @Eric_林 : 嗯,都不熟悉,到处乱搞。######回复 @-Jacen- : 都差不多,看你哪个更熟悉######windows作为服务器,用apache还是nginx更好?######你这一个processTime 这么久? 最长的半个小时,一台tomcat 请求多了 你不挂 谁挂