obter NoHttpResponseException para teste de carga
Estou executando testes de carga para o meu aplicativo. Eu tenho dois servidores: um com meu aplicativo e um servidor fictício que é responsável por me obter respostas.
No meu servidor fictício eu tenho o seguinte código jsp:
<code><%@ page import="java.util.Random" %> <%@ page language="java" %> <%@ page session="false" %> <% String retVal = "some json string"; Thread.sleep(50); %> </code>
Estou executando o aplicativo com o tomcat7. Meu pool de conexão server.xml (em ambos os servidores) se parece com:
<code><Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="1500" minSpareThreads="1000" prestartminSpareThreads="true" /> <Connector port="9031" protocol="HTTP/1.1" connectionTimeout="20000" maxConnections="4000" executor="tomcatThreadPool" redirectPort="8443" /> </code>
O código java que estou executando nos servidores é:
<code> HttpPost post = new HttpPost(bidderUrl); post.setHeader("Content-Type", "application/json"); // I'm using http client with ThreadSafeClientConnManager // total conn = 500, max conn per route = 100, timeout=500millis HttpClient httpClient = httpClientFactory.getHttpClient(); try { post.setEntity(new StringEntity(jsobBidRequest)); HttpResponse response = httpClient.execute(post); ... catch (NoHttpResponseException e){ log.error(e); } </code>
Estou executando o Jmetter com 50 threads simultâneas (sem loop) e recebo muitas exceções como esta:
<code>org.apache.http.NoHttpResponseException The target server failed to respond </code>
Enquanto eu estou executando apenas 5 ou 10 threads simultâneas tudo funciona bem.
Você poderia por favor me aconselhar o que poderia estar errado na minha configuração? Pelo que entendi, não vejo nenhum erro para as 50 solicitações de encadeamento simultâneas.