Hi Guys

We have our latest release going through the QA now, and during load
tests after a certain number of users (around 40) the threads starting
to block and the response time goes through space. Worth mentioning
that each calls another two local service in the same server, so that
will have at least three times threads than the number of users. But
if we are simulating 40 users, it would start maximum of 120 threads.

The connector is configured as follows:

<Connector port="18081" maxHttpHeaderSize="8192"
               maxThreads="750" minSpareThreads="125" maxSpareThreads="375"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" />

It seems a lot of the threads are getting blocked. Looking at the
configuration, what could be that is blocking tomcat?

Below is the JConsole result, you can see that there are a lot of
blocked threads on there.

Name: http-18081-Processor95
State: WAITING on
[EMAIL PROTECTED]
Total blocked: 106  Total waited: 129

Stack trace:
java.lang.Object.wait(Native Method)
org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.doGetConnection(MultiThreadedHttpConnectionManager.java:518)
org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.getConnectionWithTimeout(MultiThreadedHttpConnectionManager.java:416)
org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:153)
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
com.yell.keywordinterpreter.client.query.KeywordInterpreterQuery.sendRequest(KeywordInterpreterQuery.java:99)
com.yell.keywordinterpreter.client.KeywordInterpreterClientInterface.doUCSKeywordInterpretation(KeywordInterpreterClientInterface.java:45)
com.yell.ucssearch.search.interpreterstage.keyword.KeywordInterpreterStage.runKeywordInterpreterWebserviceQuery(KeywordInterpreterStage.java:157)
com.yell.ucssearch.search.interpreterstage.keyword.KeywordInterpreterStage.interpret(KeywordInterpreterStage.java:82)
com.yell.ucssearch.search.interpreterstage.UserTermsIntepreter.interpret(UserTermsIntepreter.java:47)
com.yell.ucssearch.search.SearchLogic.getInterpretedUserTermsResponse(SearchLogic.java:374)
com.yell.ucssearch.search.SearchLogic.runFullSearch(SearchLogic.java:107)
com.yell.ucssearch.api.response.DoUcsSearch.doPost(DoUcsSearch.java:160)
com.yell.ucssearch.api.response.DoUcsSearch.doGet(DoUcsSearch.java:123)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
java.lang.Thread.run(Thread.java:595)


Name: http-18081-Processor99
State: WAITING on
[EMAIL PROTECTED]
Total blocked: 617  Total waited: 271

Stack trace:
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:474)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:661)
java.lang.Thread.run(Thread.java:595)


Name: http-18081-Processor125
State: RUNNABLE
Total blocked: 720  Total waited: 17,006

Stack trace:
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.read(SocketInputStream.java:129)
org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:738)
org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(InternalInputBuffer.java:399)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
java.lang.Thread.run(Thread.java:595)
_____________________________________________________

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to