spring mvc项目 容器用的是tomcat 之前一直是默认的TOMCAT设置在跑 没出过问题(虽然理论上流量应该挺大的 但是没有反应过问题)
最近网站经常无响应 查看一下tomcat的线程满了(默认是200)所以找网上的相关资料自行进行了一些优化
打开线程池:
<Executor name="tomcatThreadPool"
namePrefix="catalina-exec-"
maxThreads="500"
minSpareThreads="10"
maxIdleTime="60000"
/>
使用apr并且修改参数:
<Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
executor="tomcatThreadPool"
connectionTimeout="20000"
redirectPort="8443"
acceptCount="400"
enableLookups="false"
maxConnections="10000"
URIEncoding="GBK"
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla,traviata"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,image/png,image/jpg,image/gif"
disableUploadTimeout="false"
connectionUploadTimeout="20000"
useBodyEncodingForURI="true"
/>
JAVA提升内存:set JAVA_OPTS=%JAVA_OPTS% -server -Xms1024m -Xmx1024m
(渣服务器 内存就2G 也没法多给)
加了probe做了一下参考检测:
线程数改过300 500 600 都是一开机都满了(busy满) 之前没设置排队 所以反应有页面无法打开 现在设置了排队 反应网站响应慢
想问一下 排除后台应用的问题(应用一直没动过) 单从tomcat来说(机器一直没动过 虽然渣性能 肯定有服务器的问题)还有优化的地方么 问题在哪?求教.
不应该一味的从线程池增大的方向去解决性能问题,如果查询较慢,或者有比较复杂的算法、递归等操作,增大线程池没有意义的。
应该首先找到性能瓶颈。我建议先把线程池降下来。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。