jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Philippe Mouawad <philippe.moua...@gmail.com>
Subject Re: httpClient.getConnectionManager() performance with HTTP only
Date Mon, 29 Dec 2014 14:15:00 GMT
Hi Oleg,
Thanks for answers.
Clarifications below inline.
Regards

On Mon, Dec 29, 2014 at 10:04 AM, Oleg Kalnichevski <olegk@apache.org>
wrote:

> On Sun, 2014-12-28 at 22:09 +0100, Philippe Mouawad wrote:
> > Hi,
> > Related to this topic, once we switch to 1 instance of HttpClient shared
> by
> > all threads, how can we reset SSLContext ?
> > We need this feature within jmeter to simulate SSL handshake per client ,
> > we currently do :
> > httpClient.getConnectionManager().shutdown();
> > Which by the way is rather very inefficient way to do this.
> >
>
> What do you mean by resetting SSLContext, changing some SSL handshake
> parameters?
>
In JMeter, when we want to simulate Client certicate authentication, we
currently "reset" SSL Context by calling
httpClient.getConnectionManager().shutdown();
in order to reproduce the SSL renegociation:
https://github.com/apache/jmeter/blob/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java
See lines 630 to 638.


> One can force SSL renegotiation by evicting all idle connections from
> the connection pool.
>
Ok, that's good to know, so it means even today it would be better to call
this instead:

httpClient.getConnectionManager().closeIdleConnections(1,
TimeUnit.MICROSECONDS);



> Please note that if JMeter needs to simulate several physical users
> having a separate connection pool per distinct user may be the easiest
> and the most representative strategy.
>

What is the object to use if it's not 1 HttpClient per user as we do today
?

PoolingHttpClientConnectionManager does not seem to be the one, as if
it's shared among threads, how could we reset it only for 1 user ?


> Cheers
>
> Oleg
>
> > Thanks
> > Regards
> >
> > On Thu, May 15, 2014 at 10:39 AM, Oleg Kalnichevski <olegk@apache.org>
> > wrote:
> >
> > > On Wed, 2014-05-14 at 19:46 +0100, sebb wrote:
> > > > On 14 May 2014 12:28, Oleg Kalnichevski <olegk@apache.org> wrote:
> > >
> > > ...
> > >
> > > > >> Issue is not present in HTTPCLient 3.1
> > > > >
> > > > > Philippe
> > > > >
> > > > > If HttpClient is used correctly, this code should only be executed
> only
> > > > > once. Why does JMeter create more than one instance of HttpClient?
> > > >
> > > > We currently create an instance for each instance of different proxy
> > > > settings and each protocol and each authority, because the client is
> > > > created with these settings.
> > > >
> > > > This is also done for each thread.
> > > >
> > > > IIRC, this was necessary originally. We have not rewritten the code
> > > > yet to use all the latest features.
> > > >
> > >
> > > I see. For the time what you can do is to use a custom SSL socket
> > > factory that lazily initializes SSL context when requested for the
> first
> > > time. This is exactly what HC 3.1 does. It will be somewhat slower
> given
> > > that one would need to mutex to synchronize access to the
> initialization
> > > code.
> > >
> > > Oleg
> > >
> > > > > Oleg
> > > > >
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
> > > > For additional commands, e-mail: httpclient-users-help@hc.apache.org
> > > >
> > >
> > >
> > >
>
>
>


-- 
Cordialement.
Philippe Mouawad.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message