开发者社区> 问答> 正文

求助Tomcat|线程满,网站响应慢,如何解决?

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做了一下参考检测:
screenshot
线程数改过300 500 600 都是一开机都满了(busy满) 之前没设置排队 所以反应有页面无法打开 现在设置了排队 反应网站响应慢
想问一下 排除后台应用的问题(应用一直没动过) 单从tomcat来说(机器一直没动过 虽然渣性能 肯定有服务器的问题)还有优化的地方么 问题在哪?求教.

展开
收起
落地花开啦 2016-06-03 18:27:46 4802 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    不应该一味的从线程池增大的方向去解决性能问题,如果查询较慢,或者有比较复杂的算法、递归等操作,增大线程池没有意义的。

    应该首先找到性能瓶颈。我建议先把线程池降下来。

    2019-07-17 19:27:02
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Apache Tomcat 的云原生演进 立即下载
多IO线程优化版 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载