开发者社区 问答 正文

TOMCAT 线程阻塞 connectionTimeout? 400 报错

TOMCAT 线程阻塞 connectionTimeout? 400 报错

我用的是TOMCAT 7

配置文件如下:


<Executor name="tomcatThreadPool" 
namePrefix="catalina-exec-"
        maxThreads="500" 
minSpareThreads="10"
maxIdleTime="60000"
/>

<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"
               />


出现了线程阻塞问题:

卡住了很多线程,并且都用了很长时间了


那么我的问题来了(我是小白-。-)我看tomcat参数里有一个connectionTimeout="20000" 这个时间到底是控制啥的。。为啥这些线程卡了这么久还在卡着

展开
收起
爱吃鱼的程序员 2020-06-03 11:45:44 808 分享 版权
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    为什么觉得跟tomcat有关?为什么不检查程序?

    ######我想知道TOMCAT的这个超时是否应该结束这些超时的进程 程序方面用压测软件压同一连接并没有出现如此大的阻塞 而且基本没有阻塞 也有可能是网络问题但是不好排除 所以先问一下TOMCAT是否设置的有问题 是否可以避免这个情况######压缩 最好不要开启,算法类的东西比较耗时的。 访问量不大的话,Tomcat默认配置都不应该出现访问超时现象。建议检查所开发的程序,输出、查看日志,跟踪是什么调用造成这种现象。######节省计算资源;排查问题时尽量简单化。######为啥不开启压缩?!省流量省宽带,cup运输可以忽略不计。###### connectionTimeout 我猜测是http建立时的超时时间吧。客户端也会设置connectionTimeout。出现线程阻塞你用jstack打印堆栈看看都在等待什么啊,阻塞在哪里,你看这个超时时间干啥呢?!######超时会自动自杀啊,我不是很理解你想实现什么功能。你程序block,应该不是这个原因,用jstack打印下看看block点######有没有办法让这种超时的进程自杀的办法啊。。我看了看找到了等待的原因 但是我自己却没法复现= =我怎么压测都不会出现堵塞 蛋疼。。######你应该去查看你的程序 。。那些地方 执行需要这么久 还不释放线程  。。。
    2020-06-03 13:15:22
    赞同 展开评论