получить NoHttpResponseException для нагрузочного тестирования
Я провожу нагрузочные тесты для своего приложения. У меня есть два сервера: один с моим приложением и фиктивный сервер, который отвечает за получение ответов.
На моем фиктивном сервере у меня есть следующий jsp код:
<code><%@ page import="java.util.Random" %> <%@ page language="java" %> <%@ page session="false" %> <% String retVal = "some json string"; Thread.sleep(50); %> </code>
Я запускаю приложение с tomcat7. Мой пул соединений server.xml (на обоих серверах) выглядит так:
<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>
Явский код, который я запускаю с серверов:
<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>
Я запускаю Jmetter с 50 одновременными потоками (без цикла) и получаю множество исключений, подобных этому:
<code>org.apache.http.NoHttpResponseException The target server failed to respond </code>
Пока у меня запущено всего 5 или 10 одновременных потоков, все работает нормально.
Не могли бы вы посоветовать мне, что может быть не так в моей настройке? Насколько я понимаю, я не вижу никаких ошибок для 50 одновременных запросов потока.