Tôi đang chạy thử nghiệm tải cho ứng dụng của mình. Tôi có hai máy chủ: một với ứng dụng của tôi và một máy chủ giả có trách nhiệm trả lời tôi.nhận NoHttpResponseException để kiểm tra tải
Trong máy chủ giả của tôi, tôi có mã jsp sau:
<%@ page import="java.util.Random" %>
<%@ page language="java" %>
<%@ page session="false" %>
<%
String retVal = "some json string";
Thread.sleep(50);
%>
Tôi đang chạy các ứng dụng với tomcat7. My hồ bơi kết nối server.xml (trong cả hai máy chủ) trông giống như:
<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" />
Mã java Tôi đang chạy từ các máy chủ là:
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);
}
Tôi đang chạy Jmetter với 50 chủ đề cùng lúc (không có vòng lặp) và nhận được rất nhiều ngoại lệ như thế này:
org.apache.http.NoHttpResponseException The target server failed to respond
Trong khi tôi chỉ chạy 5 hoặc 10 luồng đồng thời mọi thứ hoạt động ok.
Bạn có thể vui lòng tư vấn cho tôi những gì có thể sai trong thiết lập của tôi không? Đối với sự hiểu biết của tôi, tôi không thấy bất kỳ lỗi nào cho 50 yêu cầu luồng đồng thời.
Julias, điều này rất hữu ích! Cảm ơn rất nhiều vì đã đăng giải pháp của bạn. Đó là chính xác những gì tôi đang tìm kiếm. – trillions
Giải pháp của bạn cũng đã giúp tôi. Trong trường hợp của tôi, NoHttpResponseException chỉ xảy ra đôi khi tôi đã kích hoạt anti-virus. Chống vi-rút luôn chạy một số lần quét khi yêu cầu http được gửi và đôi khi mất nhiều thời gian hơn, khiến yêu cầu không thành công. – Seigo
@Seigo - Tôi hiểu đây là một chủ đề cũ, nhưng bạn đã có một executionTimeout vì trong đó các yêu cầu đã thất bại? Cài đặt nào khiến yêu cầu thất bại? –