Dmitri, Thank you for your suggestions. This is definitely a steep learning curve for me!
I've enabled Java Network Debugging, as well as added the org.apache.http logger to log4j2 and restart JMeter. Also verified the JMX test contains sample requests, contains a cache manager, and timers (this simple test was created by a MS Azure Load testing professional). I'm not a JMeter expert (nor a testing expert by any definition), but we still suspect the issue resides with the HTTP4 Client Implementation and its connection handling due to the information below. Additional information: 1. The org.apache.http.NoHttpResponseException only occurs when using HTTP4 client. It doesn't not occur when using the Java Client implementation (which I believe is not recommended to use). 2. Using HTTP4 Client Implementation, unchecking/removing the "Use KeepAlive" header checkbox in the HTTP Request sampler resolves the issue, however this isn't realistic as most browsers will be sending this header in their requests. 3. Verified that the server can definitely handle the load, and that there are no errors on the WordPress Server's apache log. 4. Verified the server is sending the keep-alive header. 5. The server doesn't appear to be refusing connections (per the Apache WordPress log files). 6. The apache.org wiki explains the org.apache.http.NoHttpResponseException here, especially the "interesting links" section, which is very similar to our issue: https://cwiki.apache.org/confluence/display/jmeter/JMeterSocketClosed At this point my original question still stands, are the settings from #6 above (user.properties and hc.parameters) the right direction to go at this point? LOGS: Below is a snippet from logging where a successful request "some_image.png", followed immediately by an NoHttpResponseException "someicon.ico": 2024-08-20 03:57:44,592 DEBUG o.a.h.c.s.SSLConnectionSocketFactory: Secure session established 2024-08-20 03:57:44,592 DEBUG o.a.h.c.s.SSLConnectionSocketFactory: negotiated protocol: TLSv1.3 2024-08-20 03:57:44,592 DEBUG o.a.h.c.s.SSLConnectionSocketFactory: negotiated cipher suite: TLS_AES_256_GCM_SHA384 2024-08-20 03:57:44,592 DEBUG o.a.h.c.s.SSLConnectionSocketFactory: peer principal: CN=*.server.com, O=Some Org, L=Org, ST=California, C=US 2024-08-20 03:57:44,592 DEBUG o.a.h.c.s.SSLConnectionSocketFactory: peer alternative names: [*.server.com, server.com] 2024-08-20 03:57:44,592 DEBUG o.a.h.c.s.SSLConnectionSocketFactory: issuer principal: CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1, O=DigiCert Inc, C=US 2024-08-20 03:57:44,592 DEBUG o.a.j.p.h.s.HTTPHC4Impl$JMeterDefaultHttpClientConnectionOperator: Connection established 170.164.128.29:21802<->170.164.60.57:443 2024-08-20 03:57:44,592 DEBUG o.a.h.i.e.MainClientExec: Executing request GET /wp-content/uploads/2021/12/some_image.png HTTP/1.1 2024-08-20 03:57:44,592 DEBUG o.a.h.i.e.MainClientExec: Target auth state: UNCHALLENGED 2024-08-20 03:57:44,592 DEBUG o.a.h.i.e.MainClientExec: Proxy auth state: UNCHALLENGED 2024-08-20 03:57:44,592 DEBUG o.a.h.headers: http-outgoing-2817 >> GET /wp-content/uploads/2021/12/some_image.png HTTP/1.1 2024-08-20 03:57:44,592 DEBUG o.a.h.headers: http-outgoing-2817 >> Connection: keep-alive 2024-08-20 03:57:44,592 DEBUG o.a.h.headers: http-outgoing-2817 >> Sec-Fetch-Mode: cors 2024-08-20 03:57:44,592 DEBUG o.a.h.headers: http-outgoing-2817 >> Referer: https://some.server.com/wp-content/themes/bolt/assets/vendor/fontawesome/css/all.min.css?ver=%205.7.1 2024-08-20 03:57:44,592 DEBUG o.a.h.headers: http-outgoing-2817 >> Sec-Fetch-Site: same-origin 2024-08-20 03:57:44,592 DEBUG o.a.h.headers: http-outgoing-2817 >> Accept-Language: en-US,en;q=0.5 2024-08-20 03:57:44,592 DEBUG o.a.h.headers: http-outgoing-2817 >> Accept-Encoding: identity 2024-08-20 03:57:44,592 DEBUG o.a.h.headers: http-outgoing-2817 >> User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0 2024-08-20 03:57:44,592 DEBUG o.a.h.headers: http-outgoing-2817 >> Accept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8 2024-08-20 03:57:44,592 DEBUG o.a.h.headers: http-outgoing-2817 >> Sec-Fetch-Dest: font 2024-08-20 03:57:44,592 DEBUG o.a.h.headers: http-outgoing-2817 >> Host: some.server.com 2024-08-20 03:57:44,592 DEBUG o.a.h.wire: http-outgoing-2817 >> "GET /wp-content/uploads/2021/12/some_image.png HTTP/1.1[\r][\n]" 2024-08-20 03:57:44,592 DEBUG o.a.h.wire: http-outgoing-2817 >> "Connection: keep-alive[\r][\n]" 2024-08-20 03:57:44,592 DEBUG o.a.h.wire: http-outgoing-2817 >> "Sec-Fetch-Mode: cors[\r][\n]" 2024-08-20 03:57:44,592 DEBUG o.a.h.wire: http-outgoing-2817 >> "Referer: https://some.server.com/wp-content/themes/bolt/assets/vendor/fontawesome/css/all.min.css?ver=%205.7.1[\r][\n] " 2024-08-20 03:57:44,592 DEBUG o.a.h.wire: http-outgoing-2817 >> "Sec-Fetch-Site: same-origin[\r][\n]" 2024-08-20 03:57:44,592 DEBUG o.a.h.wire: http-outgoing-2817 >> "Accept-Language: en-US,en;q=0.5[\r][\n]" 2024-08-20 03:57:44,592 DEBUG o.a.h.wire: http-outgoing-2817 >> "Accept-Encoding: identity[\r][\n]" 2024-08-20 03:57:44,592 DEBUG o.a.h.wire: http-outgoing-2817 >> "User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0[\r][\n]" 2024-08-20 03:57:44,592 DEBUG o.a.h.wire: http-outgoing-2817 >> "Accept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8[\r][\n]" 2024-08-20 03:57:44,592 DEBUG o.a.h.wire: http-outgoing-2817 >> "Sec-Fetch-Dest: font[\r][\n]" 2024-08-20 03:57:44,592 DEBUG o.a.h.wire: http-outgoing-2817 >> "Host: some.server.com[\r][\n]" 2024-08-20 03:57:44,592 DEBUG o.a.h.wire: http-outgoing-2817 >> "[\r][\n]" 2024-08-20 03:57:44,593 DEBUG o.a.j.p.h.s.HTTPHC4Impl: Sent 539 bytes 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 << "HTTP/1.1 200 OK[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 << "Date: Tue, 20 Aug 2024 10:57:44 GMT[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 << "Server: Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_fcgid/2.3.9[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 << "Content-Security-Policy: frame-ancestors 'self' some.server.com *. some.server.com server.com *.server.com[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 << "Strict-Transport-Security: max-age=31536000[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 << "Last-Modified: Wed, 04 May 2022 22:31:49 GMT[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 << "ETag: "98f-5de3730f7fff8"[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 << "Accept-Ranges: bytes[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 << "Content-Length: 2447[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 << "Cache-Control: max-age=31536000[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 << "Expires: Wed, 20 Aug 2025 10:57:44 GMT[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 << "Referrer-Policy: no-referrer-when-downgrade[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 << "Keep-Alive: timeout=5, max=200[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 << "Connection: Keep-Alive[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 << "Content-Type: image/png[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 << "[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 << "[0x89]PNG[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 << "[0x1a][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 << ... some_image.png data ... 2024-08-20 03:57:45,210 DEBUG o.a.h.headers: http-outgoing-2817 << HTTP/1.1 200 OK 2024-08-20 03:57:45,210 DEBUG o.a.h.headers: http-outgoing-2817 << Date: Tue, 20 Aug 2024 10:57:44 GMT 2024-08-20 03:57:45,210 DEBUG o.a.h.headers: http-outgoing-2817 << Server: Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_fcgid/2.3.9 2024-08-20 03:57:45,210 DEBUG o.a.h.headers: http-outgoing-2817 << Content-Security-Policy: frame-ancestors 'self' some.server.com *. some.server.com server.com *.server.com 2024-08-20 03:57:45,210 DEBUG o.a.h.headers: http-outgoing-2817 << Strict-Transport-Security: max-age=31536000 2024-08-20 03:57:45,210 DEBUG o.a.h.headers: http-outgoing-2817 << Last-Modified: Wed, 04 May 2022 22:31:49 GMT 2024-08-20 03:57:45,210 DEBUG o.a.h.headers: http-outgoing-2817 << ETag: "98f-5de3730f7fff8" 2024-08-20 03:57:45,210 DEBUG o.a.h.headers: http-outgoing-2817 << Accept-Ranges: bytes 2024-08-20 03:57:45,210 DEBUG o.a.h.headers: http-outgoing-2817 << Content-Length: 2447 2024-08-20 03:57:45,210 DEBUG o.a.h.headers: http-outgoing-2817 << Cache-Control: max-age=31536000 2024-08-20 03:57:45,210 DEBUG o.a.h.headers: http-outgoing-2817 << Expires: Wed, 20 Aug 2025 10:57:44 GMT 2024-08-20 03:57:45,210 DEBUG o.a.h.headers: http-outgoing-2817 << Referrer-Policy: no-referrer-when-downgrade 2024-08-20 03:57:45,210 DEBUG o.a.h.headers: http-outgoing-2817 << Keep-Alive: timeout=5, max=200 2024-08-20 03:57:45,210 DEBUG o.a.h.headers: http-outgoing-2817 << Connection: Keep-Alive 2024-08-20 03:57:45,210 DEBUG o.a.h.headers: http-outgoing-2817 << Content-Type: image/png 2024-08-20 03:57:45,210 DEBUG o.a.h.i.e.MainClientExec: Connection can be kept alive for 5000 MILLISECONDS 2024-08-20 03:57:45,210 DEBUG o.a.h.c.p.ResponseProcessCookies: Cookie spec not specified in HTTP context 2024-08-20 03:57:45,210 DEBUG o.a.j.p.h.s.HTTPHC4Impl: Headers in request before:[Connection: keep-alive, Sec-Fetch-Mode: cors, Referer: https://some.server.com/wp-content/themes/bolt/assets/vendor/fontawesome/css/all.min.css?ver=%205.7.1, Sec-Fetch-Site: same-origin, Accept-Language: en-US,en;q=0.5, Accept-Encoding: identity, User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0, Accept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8, Sec-Fetch-Dest: font] 2024-08-20 03:57:45,210 DEBUG o.a.j.p.h.s.HTTPHC4Impl: Headers in request after:[Connection: keep-alive, Sec-Fetch-Mode: cors, Referer: https://some.server.com/wp-content/themes/bolt/assets/vendor/fontawesome/css/all.min.css?ver=%205.7.1, Sec-Fetch-Site: same-origin, Accept-Language: en-US,en;q=0.5, Accept-Encoding: identity, User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0, Accept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8, Sec-Fetch-Dest: font], in localContext#request:[Connection: keep-alive, Sec-Fetch-Mode: cors, Referer: https://some.server.com/wp-content/themes/bolt/assets/vendor/fontawesome/css/all.min.css?ver=%205.7.1, Sec-Fetch-Site: same-origin, Accept-Language: en-US,en;q=0.5, Accept-Encoding: identity, User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0, Accept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8, Sec-Fetch-Dest: font, Host: some.server.com] 2024-08-20 03:57:45,210 DEBUG o.a.j.p.h.s.HTTPHC4Impl: Extracted from HttpContext user token:06_SomeHomePage 1-1 storing it as JMeter variable:__jmeter.U_T__ 2024-08-20 03:57:45,210 DEBUG o.a.h.i.c.PoolingHttpClientConnectionManager: Connection [id: 2817][route: {s}->https://some.server.com:443][state: 06_SomeHomePage 1-1] can be kept alive for 5.0 seconds 2024-08-20 03:57:45,210 DEBUG o.a.h.i.c.DefaultManagedHttpClientConnection: http-outgoing-2817: set socket timeout to 0 2024-08-20 03:57:45,210 DEBUG o.a.h.i.c.PoolingHttpClientConnectionManager: Connection released: [id: 2817][route: {s}->https://some.server.com:443][state: 06_SomeHomePage 1-1][total available: 1; route allocated: 1 of 2; total allocated: 1 of 20] 2024-08-20 03:57:45,210 DEBUG o.a.j.p.h.s.HTTPHC4Impl: ResponseHeadersSize=621 Content-Length=2447 Total=3068 2024-08-20 03:57:45,210 DEBUG o.a.j.c.GenericController: Calling next on: class org.apache.jmeter.control.GenericController 2024-08-20 03:57:45,210 DEBUG o.a.j.c.GenericController: Calling next on: class org.apache.jmeter.control.GenericController 2024-08-20 03:57:45,210 DEBUG o.a.j.p.h.s.HTTPHC4Impl: Start : sample https://some.server.com/wp-content/themes/bolt/someicon.ico method GET followingRedirect false depth 0 2024-08-20 03:57:45,210 DEBUG o.a.j.p.h.s.HTTPHC4Impl: Reusing the HttpClient: @50868938 https://some.server.com 2024-08-20 03:57:45,210 DEBUG o.a.j.p.h.c.HC4CookieHandler: Found 0 cookies for https://some.server.com/wp-content/themes/bolt/someicon.ico 2024-08-20 03:57:45,210 DEBUG o.a.j.p.h.s.HTTPHC4Impl: Found user token:06_SomeHomePage 1-1 as JMeter variable:__jmeter.U_T__, storing it in HttpContext 2024-08-20 03:57:45,210 DEBUG o.a.h.c.p.RequestAddCookies: CookieSpec selected: default 2024-08-20 03:57:45,210 DEBUG o.a.h.c.p.RequestAddCookies: Unsupported cookie policy: default 2024-08-20 03:57:45,210 DEBUG o.a.h.c.p.RequestAuthCache: Auth cache not set in the context 2024-08-20 03:57:45,210 DEBUG o.a.h.i.c.PoolingHttpClientConnectionManager: Connection request: [route: {s}->https://some.server.com:443][state: 06_SomeHomePage 1-1][total available: 1; route allocated: 1 of 2; total allocated: 1 of 20] 2024-08-20 03:57:45,210 DEBUG o.a.h.i.c.PoolingHttpClientConnectionManager: Connection leased: [id: 2817][route: {s}->https://some.server.com:443][state: 06_SomeHomePage 1-1][total available: 0; route allocated: 1 of 2; total allocated: 1 of 20] 2024-08-20 03:57:45,210 DEBUG o.a.h.i.c.DefaultManagedHttpClientConnection: http-outgoing-2817: set socket timeout to 0 2024-08-20 03:57:45,210 DEBUG o.a.h.i.e.MainClientExec: Executing request GET /wp-content/themes/bolt/someicon.ico HTTP/1.1 2024-08-20 03:57:45,210 DEBUG o.a.h.i.e.MainClientExec: Target auth state: UNCHALLENGED 2024-08-20 03:57:45,210 DEBUG o.a.h.i.e.MainClientExec: Proxy auth state: UNCHALLENGED 2024-08-20 03:57:45,210 DEBUG o.a.h.headers: http-outgoing-2817 >> GET /wp-content/themes/bolt/someicon.ico HTTP/1.1 2024-08-20 03:57:45,210 DEBUG o.a.h.headers: http-outgoing-2817 >> Connection: keep-alive 2024-08-20 03:57:45,210 DEBUG o.a.h.headers: http-outgoing-2817 >> Sec-Fetch-Mode: no-cors 2024-08-20 03:57:45,210 DEBUG o.a.h.headers: http-outgoing-2817 >> Referer: https://some.server.com/ 2024-08-20 03:57:45,210 DEBUG o.a.h.headers: http-outgoing-2817 >> Sec-Fetch-Site: same-origin 2024-08-20 03:57:45,210 DEBUG o.a.h.headers: http-outgoing-2817 >> Accept-Language: en-US,en;q=0.5 2024-08-20 03:57:45,210 DEBUG o.a.h.headers: http-outgoing-2817 >> Accept-Encoding: gzip, deflate, br 2024-08-20 03:57:45,210 DEBUG o.a.h.headers: http-outgoing-2817 >> User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0 2024-08-20 03:57:45,210 DEBUG o.a.h.headers: http-outgoing-2817 >> Accept: image/avif,image/webp,*/* 2024-08-20 03:57:45,210 DEBUG o.a.h.headers: http-outgoing-2817 >> Sec-Fetch-Dest: image 2024-08-20 03:57:45,210 DEBUG o.a.h.headers: http-outgoing-2817 >> Host: some.server.com 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 >> "GET /wp-content/themes/bolt/someicon.ico HTTP/1.1[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 >> "Connection: keep-alive[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 >> "Sec-Fetch-Mode: no-cors[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 >> "Referer: https://some.server.com/[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 >> "Sec-Fetch-Site: same-origin[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 >> "Accept-Language: en-US,en;q=0.5[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 >> "Accept-Encoding: gzip, deflate, br[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 >> "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 >> "Accept: image/avif,image/webp,*/*[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 >> "Sec-Fetch-Dest: image[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 >> "Host: some.server.com[\r][\n]" 2024-08-20 03:57:45,210 DEBUG o.a.h.wire: http-outgoing-2817 >> "[\r][\n]" 2024-08-20 03:57:45,211 DEBUG o.a.j.p.h.s.HTTPHC4Impl: Sent 429 bytes 2024-08-20 03:57:45,276 DEBUG o.a.h.wire: http-outgoing-2817 << "end of stream" 2024-08-20 03:57:45,276 DEBUG o.a.h.i.c.DefaultManagedHttpClientConnection: http-outgoing-2817: Close connection 2024-08-20 03:57:45,276 DEBUG o.a.h.i.c.DefaultManagedHttpClientConnection: http-outgoing-2817: Shutdown connection 2024-08-20 03:57:45,276 DEBUG o.a.h.i.e.MainClientExec: Connection discarded 2024-08-20 03:57:45,276 DEBUG o.a.h.i.c.PoolingHttpClientConnectionManager: Connection released: [id: 2817][route: {s}->https://some.server.com:443][state: 06_SomeHomePage 1-1][total available: 0; route allocated: 0 of 2; total allocated: 0 of 20] 2024-08-20 03:57:45,276 DEBUG o.a.j.p.h.s.HTTPHC4Impl: IOException org.apache.http.NoHttpResponseException: some.server.com:443 failed to respond at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:141) ~[httpclient-4.5.14.jar:4.5.14] at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56) ~[httpclient-4.5.14.jar:4.5.14] at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259) ~[httpcore-4.4.16.jar:4.4.16] at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163) ~[httpcore-4.4.16.jar:4.4.16] at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:157) ~[httpclient-4.5.14.jar:4.5.14] at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273) ~[httpcore-4.4.16.jar:4.4.16] at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125) ~[httpcore-4.4.16.jar:4.4.16] at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272) ~[httpclient-4.5.14.jar:4.5.14] at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186) ~[httpclient-4.5.14.jar:4.5.14] at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) ~[httpclient-4.5.14.jar:4.5.14] at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) ~[httpclient-4.5.14.jar:4.5.14] at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) ~[httpclient-4.5.14.jar:4.5.14] at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) ~[httpclient-4.5.14.jar:4.5.14] at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:940) ~[ApacheJMeter_http.jar:5.6.2] at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:651) ~[ApacheJMeter_http.jar:5.6.2] at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:66) ~[ApacheJMeter_http.jar:5.6.2] at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1311) ~[ApacheJMeter_http.jar:5.6.2] at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1300) ~[ApacheJMeter_http.jar:5.6.2] at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:651) ~[ApacheJMeter_core.jar:5.6.2] at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:570) ~[ApacheJMeter_core.jar:5.6.2] at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:501) ~[ApacheJMeter_core.jar:5.6.2] at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:268) ~[ApacheJMeter_core.jar:5.6.2] at java.lang.Thread.run(Thread.java:1583) [?:?] 2024-08-20 03:57:45,276 DEBUG o.a.j.p.h.s.HTTPHC4Impl: Overwriting request old headers: 2024-08-20 03:57:45,276 DEBUG o.a.j.c.GenericController: Calling next on: class org.apache.jmeter.control.GenericController 2024-08-20 03:57:45,276 DEBUG o.a.j.c.GenericController: Calling next on: class org.apache.jmeter.control.GenericController 2024-08-20 03:57:45,276 DEBUG o.a.j.c.GenericController: Calling next on: class org.apache.jmeter.control.GenericController 2024-08-20 03:57:45,276 DEBUG o.a.j.p.h.s.HTTPHC4Impl: notifyFirstSampleAfterLoopRestart called with config(httpclient.reset_state_on_thread_group_iteration=true) 2024-08-20 03:57:45,276 DEBUG o.a.j.p.h.s.HTTPHC4Impl: Thread Group is configured to simulate a new visitor on each iteration, using property value true 2024-08-20 03:57:45,276 DEBUG o.a.j.p.h.s.HTTPHC4Impl: Thread state will be reset ?: true 2024-08-20 03:57:45,276 DEBUG o.a.j.p.h.s.HTTPHC4Impl: notifyFirstSampleAfterLoopRestart called with config(httpclient.reset_state_on_thread_group_iteration=true) 2024-08-20 03:57:45,276 DEBUG o.a.j.p.h.s.HTTPHC4Impl: Thread Group is configured to simulate a new visitor on each iteration, using property value true 2024-08-20 03:57:45,276 DEBUG o.a.j.p.h.s.HTTPHC4Impl: Thread state will be reset ?: true 2024-08-20 03:57:45,276 DEBUG o.a.j.p.h.s.HTTPHC4Impl: notifyFirstSampleAfterLoopRestart called with config(httpclient.reset_state_on_thread_group_iteration=true) 2024-08-20 03:57:45,276 DEBUG o.a.j.p.h.s.HTTPHC4Impl: Thread Group is configured to simulate a new visitor on each iteration, using property value true 2024-08-20 03:57:45,276 DEBUG o.a.j.p.h.s.HTTPHC4Impl: Thread state will be reset ?: true 2024-08-20 03:57:45,276 DEBUG o.a.j.p.h.s.HTTPHC4Impl: notifyFirstSampleAfterLoopRestart called with config(httpclient.reset_state_on_thread_group_iteration=true) 2024-08-20 03:57:45,276 DEBUG o.a.j.p.h.s.HTTPHC4Impl: Thread Group is configured to simulate a new visitor on each iteration, using property value true 2024-08-20 03:57:45,276 DEBUG o.a.j.p.h.s.HTTPHC4Impl: Thread state will be reset ?: true 2024-08-20 03:57:45,276 DEBUG o.a.j.c.GenericController: Calling next on: class org.apache.jmeter.control.GenericController 2024-08-20 03:57:45,276 DEBUG o.a.j.c.GenericController: Calling next on: class org.apache.jmeter.control.GenericController 2024-08-20 03:57:45,276 DEBUG o.a.j.p.h.s.HTTPHC4Impl: Start : sample https://some.server.com/ method GET followingRedirect false depth 0 2024-08-20 03:57:45,276 DEBUG o.a.h.i.c.PoolingHttpClientConnectionManager: Closing expired connections 2024-08-20 03:57:45,276 DEBUG o.a.h.i.c.PoolingHttpClientConnectionManager: Closing connections idle longer than 1 MICROSECONDS 2024-08-20 03:57:45,276 DEBUG o.a.j.u.JsseSSLManager: Clearing session context for current thread 2024-08-20 03:57:45,276 DEBUG o.a.j.p.h.s.HTTPHC4Impl: Reusing the HttpClient: @50868938 https://some.server.com On Tue, Aug 20, 2024 at 12:43 AM Dmitri T <glin...@live.com> wrote: > Richard Dominguez wrote: > > Hello, I need help! > > > > Summary: > > We are conducting stress testing with Apache JMeter 5.6.3, and are > > experiencing JMeter errors once our wordpress server hits a certain > number > > of users/threads (around 200). > > The higher the number of users/rps, the higher the percentage of errors > > would occur (8% to 40+%). > > It appears the errors aren't originating from the Wordpress server, but > the > > JMeter HTTP4 Client. > > > > **QUESTIONS**: > > 1. Is #2 below (updating user.properties and hc.parameters) the "correct" > > way to get around > > these JMeter Errors? > > 2. What pitfalls, if any, will incur from doing #2 below in our tests? > > > > Through trial and error, we found only two solutions that make the errors > > go away: > > 1. Working, but unacceptable: Disable Keep-Alive header in ALL JMX Http > > Requests (Unacceptable, as most web browsers will send the request so > this > > isn't realistic). > > 2. Working, plus we don't need to update our JMX tests: We discovered a > > stackoverflow post that recommended editing the following files: > > a. JMeter/bin/user.properties: Add following lines: > > httpclient4.retrycount=1 > > hc.parameters.file=hc.parameters > > b. JMeter/bin/hc.parameters: Add following lines: > > http.connection.stalecheck$Boolean=true > > > > Additional Info: > > > > JMeter Version: > > 5.6.3 > > > > JMeter HTTP Request Client Implementation: > > HTTP4 > > > > JMeter JMX Test: > > A simple test with the root URL, and several /wp-content/ image and svg > > resources. > > > > JMeter Response Code: > > Non HTTP response code: org.apache.http.NoHttpResponseException > > > > JMeter Response Message: > > Non HTTP response message: some.server.com:443 failed to respond > > > > Server Info: > > 1. The org.apache.http.NoHttpResponseException shown in Apache JMeter > > doesn't correlate to any errors in the Apache WordPress logs. > > 2. At the time the errors occur, even at extreme loads of 20k+ users, the > > server's CPU and Memory usage never go above 20%. > > > > Other Things We Tried That Made No Difference: > > 1. Updating the HTTP Request Sampler's timeout. > > 2. Changing the HTTP Request headers content types around. > > 3. Updating the Apache/WordPress Server's Max Keep Alive Connection from > > 100 to 200. > > > Given your test fails with "some.server.com:443 failed to respond" I > don't think you should be amending your JMeter configuration, the error > indicates that the system under test (WP) cannot handle the load > > You can enable Java network debugging > < > https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/ReadDebug.html> > > by adding "javax.net.debug=all" line to system.properties file and > JMeter HttpComponents debugging > <https://www.blazemeter.com/blog/jmeter-logging> by adding <Logger > name="org.apache.http" level="debug" /> line to log4j2.xml file > > This way you will be able to see who exactly is closing the connection > and why. > > Also you shouldn't be hitting images directly, you should rather > configure HTTP Request > < > https://jmeter.apache.org/usermanual/component_reference.html#HTTP_Request> > > sampler to download embedded resources and add HTTP Cache Manager > < > https://jmeter.apache.org/usermanual/component_reference.html#HTTP_Cache_Manager> > > to represent the browser cache as this is what real browsers would be > doing. > > JMeter configuration must represent the real browser so ensure that > JMeter's network footprint is the same (i.e. don't forget to add Timers > <https://jmeter.apache.org/usermanual/component_reference.html#timers>) >