Hi Mariusz

I was using a ThreadGroup implementation from kg.apc, the UltimateThreadGroup, 
which is based on their own extension of AbstractThreadGroup – that will create 
JMeterThread instances always with the constructor that does not specify the  
‘isSameUserOnNextIteration’ parameter.

Unfortunately that means the thread is treated as a new visitor each time.  
There is no GUI config for ‘same user’

I’ve overridden the call to create the new JMeterThread for now, but will feed 
back a suggestion for a mod.

Thanks for the additional info.
Antony


From: Mariusz W <[email protected]>
Date: Wednesday, 7 July 2021 at 11:47 pm
To: JMeter Users List <[email protected]>
Subject: Re: JMeter closing connections
Hi,
Regarding:

"httpclient.reset_state_on_thread_group_iteration = false
The default is true, which means each iteration is treated as a new ‘user’,
so the connections are closed for SSL state."

This reset is for ssl only, to get new user (variable/cookie reset) you
have to turn off "Same user on each iteration" in GUI on Thread Group

Basically I modify this settings to get shorter time on connection e.g.:

   - httpclient4.idletimeout=0

   - httpclient4.validate_after_inactivity=1700

   - httpclient4.time_to_live=2000

Regards,
Mariusz

On Wed, 7 Jul 2021 at 04:04, Bowesman, Antony
<[email protected]> wrote:

> Solution was to set following property
>
> httpclient.reset_state_on_thread_group_iteration = false
>
> The default is true, which means each iteration is treated as a new
> ‘user’, so the connections are closed for SSL state.
>
> New feature since version 5
>
>
>
> From: Bowesman, Antony <[email protected]>
> Date: Wednesday, 7 July 2021 at 9:24 am
> To: JMeter Users List <[email protected]>
> Subject: RE:JMeter closing connections
> The Connection pooling is done per thread, so actually the behaviour is
> correct, as there is only ever one connection per thread. The sampler is
> simply POSTing a payload and getting a 200 response in each iteration.
>
> From: [email protected] <[email protected]
> .INVALID>
> Date: Wednesday, 7 July 2021 at 8:13 am
> To: [email protected] <[email protected]>
> Subject: RE: JMeter closing connections
> In your log output I see this:
>
> Closing connections idle longer than 1 MICROSECONDS
>
> That seems a little extreme.  (:
>
> It’s also possible the server is sending the “Connection: close” header
> for its own reasons.  If so, I would raise that with the server people.
>
> Finally, does the server require mutual authentication?  There is a quirk
> of Apache HTTP Client that will cause it to not reuse connections unless
> you jump through the right hoops.  I’m working from memory, but there is a
> disableConnectionState method on one of the builder classes.  If you don’t
> call it, mutual auth connections won’t be reused unless you specify the
> client cert subject in your pool request.  Hopefully the JMeter devs have
> taken care of this.
>
> You also have this, which I would expect to cause a lot of waiting at high
> volume:
>
> route allocated: 1 of 2; total allocated: 1 of 20
>
> That means your pool is only 2 connections per host.  That is the default
> and almost always too small.  I don’t know how to increase it through the
> UI.
>
>
> From: Bowesman, Antony <[email protected]<mailto:
> [email protected]>>
> Date: Tuesday, Jul 06, 2021, 4:42 PM
> To: JMeter List <[email protected]<mailto:[email protected]>>
> Subject: JMeter closing connections
>
> I am noticing that the outgoing port number is changing during a simple
> test and it appears that the socket is getting closed.
>
> It’s JMetert 5.4.1
> HTTP Sampler has keep alives set and I can see the following in the log.
> Sampling rate is once every 4 seconds, so this shows the end of one sample
> (16:43:16) and the start of the next (16:43:20), so it appears to be
> closing the connections before it starts the sample
>
>
> 2021-07-06T16:43:12,927 C=org.apache.http.wire M="http-outgoing-0 >>
> "Connection: keep-alive[\r][\n]""
> …
> 2021-07-06T16:43:16,578 C=org.apache.http.headers M="http-outgoing-1 <<
> Connection: Keep-Alive"
> 2021-07-06T16:43:16,578 C=execchain.MainClientExec M="Connection can be
> kept alive indefinitely"
> 2021-07-06T16:43:16,579 C=conn.PoolingHttpClientConnectionManager
> M="Connection [id: 1][route: {s}->
> https://urldefense.com/v3/__https://x.y.z:8088**Astate__;XVs!!F9svGWnIaVPGSwU!_Dw1VcCv0yCT6pGo_yfMjSxANBY_EEQtN98gFbr1b23AATNlc2eRMDT2l6UJ3cp5JP8KAOI$<https://urldefense.com/v3/__https:/x.y.z:8088**Astate__;XVs!!F9svGWnIaVPGSwU!_Dw1VcCv0yCT6pGo_yfMjSxANBY_EEQtN98gFbr1b23AATNlc2eRMDT2l6UJ3cp5JP8KAOI$>
> : metrics 2-1] can be kept alive indefinitely"
> 2021-07-06T16:43:16,579 C=conn.DefaultManagedHttpClientConnection
> M="http-outgoing-1: set socket timeout to 0"
> 2021-07-06T16:43:16,579 C=conn.PoolingHttpClientConnectionManager
> M="Connection released: [id: 1][route: {s}->
> https://urldefense.com/v3/__https://x.y.z:8088**Astate__;XVs!!F9svGWnIaVPGSwU!_Dw1VcCv0yCT6pGo_yfMjSxANBY_EEQtN98gFbr1b23AATNlc2eRMDT2l6UJ3cp5JP8KAOI$<https://urldefense.com/v3/__https:/x.y.z:8088**Astate__;XVs!!F9svGWnIaVPGSwU!_Dw1VcCv0yCT6pGo_yfMjSxANBY_EEQtN98gFbr1b23AATNlc2eRMDT2l6UJ3cp5JP8KAOI$>
> : metrics 2-1][total available: 1; route allocated: 1 of 2; total
> allocated: 1 of 20]"
> 2021-07-06T16:43:20,379 C=conn.PoolingHttpClientConnectionManager
> M="Closing expired connections"
> 2021-07-06T16:43:20,380 C=conn.PoolingHttpClientConnectionManager
> M="Closing connections idle longer than 1 MICROSECONDS"
> 2021-07-06T16:43:20,380 C=conn.DefaultManagedHttpClientConnection
> M="http-outgoing-1: Close connection"
> 2021-07-06T16:43:20,380 C=conn.PoolingHttpClientConnectionManager
> M="Connection request: [route: {s}->
> https://urldefense.com/v3/__https://x.y.z:8088**Astate__;XVs!!F9svGWnIaVPGSwU!_Dw1VcCv0yCT6pGo_yfMjSxANBY_EEQtN98gFbr1b23AATNlc2eRMDT2l6UJ3cp5JP8KAOI$<https://urldefense.com/v3/__https:/x.y.z:8088**Astate__;XVs!!F9svGWnIaVPGSwU!_Dw1VcCv0yCT6pGo_yfMjSxANBY_EEQtN98gFbr1b23AATNlc2eRMDT2l6UJ3cp5JP8KAOI$>
> : metrics 2-1][total available: 0; route allocated: 0 of 2; total
> allocated: 0 of 20]"
> 2021-07-06T16:43:20,381 C=conn.PoolingHttpClientConnectionManager
> M="Connection leased: [id: 2][route: {s}->https:// x.y.z:8088][total
> available: 0; route allocated: 1 of 2; total allocated: 1 of 20]"
> 2021-07-06T16:43:20,381 C=execchain.MainClientExec M="Opening connection
> {s}->https:// x.y.z:8088"
> 2021-07-06T16:43:20,381 C=apache.http.conn.ssl.SSLConnectionSocketFactory
> M="Connecting socket to x.y.z /n.n.n.n:8088 with timeout 0"
>
> I have a 30 minutes TTL set with
>
> httpclient4.time_to_live=1800000
>
> Problem is that during the real test, where I am sending ~3000
> request/min, the connection time on the jmeter reported metrics goes up to
> 2 seconds after about 90 seconds and then sits at that during the test and
> the count of ESTABLISHED connections varies in the plateau stage of the
> test where is should be constant.
>
> I have tried various settings of
>
> httpclient4.idletimeout
>
> with the default of 0. 10,000 and -1. In each case it changes the message
> above (can be kept alive XXX) to an appropriate value matching the setting,
> so I know it’s got the config.
>
> Any ideas?
> This e-mail and any attachments to it are confidential. You must not use,
> disclose or act on the e-mail if you are not the intended recipient. If you
> have received this e-mail in error, please let us know by contacting the
> sender and deleting the original e-mail. Liability limited by a scheme
> approved under Professional Standards Legislation. Deloitte refers to a
> Deloitte member firm, one of its related entities, or Deloitte Touche
> Tohmatsu Limited (“DTTL”). Each Deloitte member firm is a separate legal
> entity and a member of DTTL. DTTL does not provide services to clients.
> Please see
> https://urldefense.com/v3/__http://www.deloitte.com/about__;!!F9svGWnIaVPGSwU!_Dw1VcCv0yCT6pGo_yfMjSxANBY_EEQtN98gFbr1b23AATNlc2eRMDT2l6UJ3cp5CJtg3b0$<https://urldefense.com/v3/__http:/www.deloitte.com/about__;!!F9svGWnIaVPGSwU!_Dw1VcCv0yCT6pGo_yfMjSxANBY_EEQtN98gFbr1b23AATNlc2eRMDT2l6UJ3cp5CJtg3b0$>
> <
> https://urldefense.com/v3/__http:/www.deloitte.com/about__;!!F9svGWnIaVPGSwU!_Dw1VcCv0yCT6pGo_yfMjSxANBY_EEQtN98gFbr1b23AATNlc2eRMDT2l6UJ3cp5CJtg3b0$
> <
> https://urldefense.com/v3/__http:/www.deloitte.com/about__;!!F9svGWnIaVPGSwU!_Dw1VcCv0yCT6pGo_yfMjSxANBY_EEQtN98gFbr1b23AATNlc2eRMDT2l6UJ3cp5CJtg3b0$%3chttps:/urldefense.com/v3/__http:/www.deloitte.com/about__;!!F9svGWnIaVPGSwU!_Dw1VcCv0yCT6pGo_yfMjSxANBY_EEQtN98gFbr1b23AATNlc2eRMDT2l6UJ3cp5CJtg3b0$>>
> to learn more. Nothing in this e-mail, nor any related attachments or
> communications or services, have any capacity to bind any other entity
> under the ‘Deloitte’ network of member firms (including those operating in
> Australia).
> This e-mail and any attachments to it are confidential. You must not use,
> disclose or act on the e-mail if you are not the intended recipient. If you
> have received this e-mail in error, please let us know by contacting the
> sender and deleting the original e-mail. Liability limited by a scheme
> approved under Professional Standards Legislation. Deloitte refers to a
> Deloitte member firm, one of its related entities, or Deloitte Touche
> Tohmatsu Limited (“DTTL”). Each Deloitte member firm is a separate legal
> entity and a member of DTTL. DTTL does not provide services to clients.
> Please see 
> www.deloitte.com/about<http://www.deloitte.com/about<http://www.deloitte.com/about%3chttp:/www.deloitte.com/about>>
>  to learn
> more. Nothing in this e-mail, nor any related attachments or communications
> or services, have any capacity to bind any other entity under the
> ‘Deloitte’ network of member firms (including those operating in Australia).
> This e-mail and any attachments to it are confidential. You must not use,
> disclose or act on the e-mail if you are not the intended recipient. If you
> have received this e-mail in error, please let us know by contacting the
> sender and deleting the original e-mail. Liability limited by a scheme
> approved under Professional Standards Legislation. Deloitte refers to a
> Deloitte member firm, one of its related entities, or Deloitte Touche
> Tohmatsu Limited (“DTTL”). Each Deloitte member firm is a separate legal
> entity and a member of DTTL. DTTL does not provide services to clients.
> Please see www.deloitte.com/about<http://www.deloitte.com/about> to learn 
> more. Nothing in this e-mail,
> nor any related attachments or communications or services, have any
> capacity to bind any other entity under the ‘Deloitte’ network of member
> firms (including those operating in Australia).
>
This e-mail and any attachments to it are confidential. You must not use, 
disclose or act on the e-mail if you are not the intended recipient. If you 
have received this e-mail in error, please let us know by contacting the sender 
and deleting the original e-mail. Liability limited by a scheme approved under 
Professional Standards Legislation. Deloitte refers to a Deloitte member firm, 
one of its related entities, or Deloitte Touche Tohmatsu Limited (“DTTL”). Each 
Deloitte member firm is a separate legal entity and a member of DTTL. DTTL does 
not provide services to clients. Please see www.deloitte.com/about to learn 
more. Nothing in this e-mail, nor any related attachments or communications or 
services, have any capacity to bind any other entity under the ‘Deloitte’ 
network of member firms (including those operating in Australia).

Reply via email to