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>)
>

Reply via email to