由于大量请求,Tomcat挂起

时间:2014-08-14 03:33:03

标签: java mysql tomcat grails

我有一个部署在Apache Tomcat服务器上的Grails应用程序。一切正常但有时候应用程序会连续收到大约100-200个请求(由于API集成,这些很多请求都是由API发送到我的应用程序,也是在几分钟之内,而不是我的应用程序到API)和tomcat开始挂起(虽然没有错误)。

请求主要是从所使用的API发送的数据中执行一些小的DB更新。

我有办法解决这个问题吗?任何jvm设置或任何代码更改来处理这个?

2 个答案:

答案 0 :(得分:2)

您需要增加tomcat服务器中的最大线程数

<Connector port="8080" address="localhost"     
     maxThreads="250" <!-- here -->
      maxHttpHeaderSize="8192"
     emptySessionPath="true" protocol="HTTP/1.1"
     enableLookups="false" redirectPort="8443" acceptCount="100"
     connectionTimeout="20000" disableUploadTimeout="true" />

http://www.genericarticles.com/mediawiki/index.php?title=How_to_optimize_tomcat_performance_in_production

答案 1 :(得分:0)

在增加NIO线程限制之前,请确保您的I'O操作能够处理负载。如果无法处理加载线程的I/O操作将再次迅速堆积,并且由于DB的反压而将达到NIO线程限制的阈值。