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: [email protected]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]