On 14 September 2011 19:20, Nicholson, Brad (Toronto, ON, CA)
<bnichol...@hp.com> wrote:
>> -----Original Message-----
>> From: sebb [mailto:seb...@gmail.com]
>> Sent: Wednesday, September 14, 2011 1:29 PM
>> To: JMeter Users List
>> Subject: Re: Startup Cost on first operation
>>
>> On 14 September 2011 17:57, Nicholson, Brad (Toronto, ON, CA)
>> <bnichol...@hp.com> wrote:
>> >> -----Original Message-----
>> >> From: sebb [mailto:seb...@gmail.com]
>> >> Sent: Wednesday, September 14, 2011 11:27 AM
>> >> To: JMeter Users List
>> >> Subject: Re: Startup Cost on first operation
>> >>
>> >> On 14 September 2011 16:14, Nicholson, Brad (Toronto, ON, CA)
>> >> <bnichol...@hp.com> wrote:
>> >> > Hi,
>> >> >
>> >> > I am using jmeter 2.5 and I am triggering my test via Ant and
>> using
>> >> the Jenkins Performance Plugin to display the data.
>> >> >
>> >> > With each test I run, the first result has heavily inflated times
>> >> (hundreds of milliseconds instead of a few).  I'd like to avoid
>> having
>> >> such high numbers in the initial operation.  Google seems to imply
>> that
>> >> this is paying the complication time of the jmeter script during
>> this
>> >> operation.
>> >>
>> >> Do you mean compilation time?
>> >
>> > Sorry, yes - I mean compilation time.
>> >
>> >
>> >> If so, that is done before the sample is started; sample times
>> include
>> >> only the time needed to perform the sample.
>> >>
>> >> > I can absorb the cost of this operation by adding a dummy
>> operation
>> >> at the start of the test, but I am wondering if there is a
>> >> simpler/cleaner way of doing this?
>> >>
>> >> That should not be necessary; there must be something else happening
>> >> here.
>> >>
>> >> Try using a Java sampler. Does the first sample take longer than the
>> >> next?
>> >
>> > No - they are fairly uniform
>> >
>> >> What happens if you add a dummy before that?
>> >
>> > Dummy request takes a higher startup time, no change the Java
>> request.
>> >
>> > All my requests (including the dummy request) are HTTP Request's and
>> are connecting via https.
>>
>> https is much more expensive in connection setup
>>
>> >> Are you sure that the Jenkins Performance plugin is measuring
>> samples,
>> >> and not JMeter startup time?
>> >
>> > I'm sure it's not.  I've confirmed by checking the raw output files
>> written by Jmeter.  To completely eliminate other moving pieces, I've
>> re-run the test repeatedly directly from Jmeter and I see the same
>> behavior.
>>
>> The only thing I can think of that might be causing the problem is the
>> connection setup.
>> First time JMeter init for a connection will be slightly slower, but
>> should barely be noticeable; it will be the external stuff that takes
>> the most time.
>> And that will apply to browsers as well.
>>
>> Does the additional time apply to other target hosts?
>
> Yes - I've run it against a number of different hosts and the first request 
> is always significantly higher.
>
>
>> Which sampler are you using?
>
> HTTP Request

Yes, but which implementation?
Java, HttpClient3.1, HttpClient4?

>> Are you using Keep-Alive?
>
> Yes
>
>> If you switch it off, each sampler will have to create the connection
>> anew, so I would expect all the samples to take longer.
>
> I tried with keep alive off and there is no statistically interesting 
> difference.  First operation is always around 600ms, all subsequent run 
> between 8ms to 25ms.  It's the same for both keep-alive enabled and disabled. 
>  I've tested with a variety of URL's btw, and the result is always the same.

Are some of these URLs public?

If so, can you create a Bugzilla issue and attach the JMX test script?

>> AFAIK, JMeter itself does not do any expensive first-time init for
>> either https or http (obviously if it does that should be fixed to
>> exclude that time).
>> However connections do have a setup overhead, which will apply to any
>> application, including browsers, and need to be included in the JMeter
>> sample time.
>
> There seems to be something in Jmeter causing this.  I tried testing some of 
> the same URL's with Apache Benchmark and I pay no startup cost on those tests.

Or it could be Java.
AFAIK AB is C code.

> Brad.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jmeter-user-unsubscr...@jakarta.apache.org
> For additional commands, e-mail: jmeter-user-h...@jakarta.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscr...@jakarta.apache.org
For additional commands, e-mail: jmeter-user-h...@jakarta.apache.org

Reply via email to