You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@jmeter.apache.org by Pierpaolo Bagnasco <pi...@gmail.com> on 2013/11/29 23:39:26 UTC

Calculating the throughput (requests/sec) and plot it

I'm using JMeter client to test the throughtput of a certain workload
(PHP+MySQL, 1 page) on a certain server. Basically I'm doing a "capacity
test" with an increasing number of threads over the time.

I installed the "Statistical Aggregate Report" JMeter plugin and this was
the result (ignore the "Response time" line): [image: enter image
description here]

At the same time I used the "Simple Data Writer" listener to write a log
file ("JMeter.csv"). Then I tried to "manually" calculate the throughput
for every second of the test.

Each line of "JMeter.csv" has this format:

timestamp       elaspedtime   responsecode   success   bytes
1385731020607   42            200            true      325
...             ...           ...            ...       ...

The timestamp is referred to the time when the request is made by the
client, and not when the request is served by the server. So I simply
did: *totaltime
= timestamp + elapsedtime*.

In the next step I converted the *totaltime* to a date format, like:
*13:17:01*.

I have more than 14K samples and with Excel I was able to do this quickly.

Then I counted how many samples there were for each second. Example:

totaltime    samples (requestsServed/second)
13:17:01     204
13:17:02     297
...          ...

When I tried to plot the results I obtained the following graphic: [image:
enter image description here]

As you can notice it is far different from the first graphic.

Given that the first graphic is correct, what is the mistake of my
formula/procedure to calculate the throughput?

Re: Calculating the throughput (requests/sec) and plot it

Posted by sebb <se...@gmail.com>.
On 2 December 2013 09:37, Sergio Boso <se...@bosoconsulting.it> wrote:
> HI
>
> there are few  points here.
>
> 1)  Throughput is described clearly here
>    http://jmeter.apache.org/usermanual/glossary.html#Throughput

Yes.

>
> 2)  Throughput  is part of Summary Report  and Aggregate report, which in
> turn are part of the standard Jmeter code.

Yes.

> So this question seems appropriate here.

However, the query was about the "Statistical Aggregate Report" JMeter
plugin which is not part of JMeter, and which may have an incompatible
way of doing the calculations. It is off-topic for the JMeter mailing
lists.

> 3)  Instead of using ""Simple Data Writer"", you can use the "Write result
> to file" configuration. This way, you can also re-read the data and
> visualize them, after the test has been run..

Yes, one can reload the data in a browser.

> This allows you do do comparison on the same data,

"Write result to file" saves the content of the response only; it does
not save the times.
It cannot be used for timing analysis, but one can of course use a
file comparison utility to check the output is as expected.

> Using a simple data
> writer probably introduces some skew (few msec, but the numbers become
> different)

Huh?
That does not make sense to me.

> 4) interesting point about Jenkins, as a tool to automate reporting
> Is there any pointer/cookbook around?

That should be raised as a separate e-mail thread please.

> Thank you
>
> Sergio
>
> Il 30/11/2013 11.25, sebb ha scritto:
>
>> On 30 November 2013 10:06, Pierpaolo Bagnasco
>> <pi...@gmail.com> wrote:
>>>
>>> Hi, thanks for the reply. I already corrected that formula, but it still
>>> doesn't change anything.
>>> I tried for example counting all samples in each 1000 milliseconds
>>> interval, like:
>>> first sample=1385731060500
>>> last sample=1385731061394
>>> difference=894 milliseconds
>>
>> That's wrong as well; you need to subract the first start time from
>> the last end time.
>> Or add the last elapsed time to the difference between the two start
>> times.
>>
>> However, this is all academic, because the Statistical Aggregate
>> Report is not a standard JMeter listener.
>> Queries on it need to be sent to the maintainers of the plugin,
>> whoever that may be.
>>
>>> samples=277
>>> So I tried with: (277/894)*1000=~309 requests/second. But the first
>>> graphic, in the same period, shows a throughput of ~90.
>>>
>>>
>>> 2013/11/30 sebb <se...@gmail.com>
>>>
>>>> On 29 November 2013 22:39, Pierpaolo Bagnasco
>>>> <pi...@gmail.com> wrote:
>>>>>
>>>>> I'm using JMeter client to test the throughtput of a certain workload
>>>>> (PHP+MySQL, 1 page) on a certain server. Basically I'm doing a
>>>>> "capacity
>>>>> test" with an increasing number of threads over the time.
>>>>>
>>>>> I installed the "Statistical Aggregate Report" JMeter plugin and this
>>>>> was
>>>>> the result (ignore the "Response time" line): [image: enter image
>>>>> description here]
>>>>>
>>>>> At the same time I used the "Simple Data Writer" listener to write a
>>>>> log
>>>>> file ("JMeter.csv"). Then I tried to "manually" calculate the
>>>>> throughput
>>>>> for every second of the test.
>>>>>
>>>>> Each line of "JMeter.csv" has this format:
>>>>>
>>>>> timestamp       elaspedtime   responsecode   success   bytes
>>>>> 1385731020607   42            200            true      325
>>>>> ...             ...           ...            ...       ...
>>>>>
>>>>> The timestamp is referred to the time when the request is made by the
>>>>> client, and not when the request is served by the server. So I simply
>>>>> did: *totaltime
>>>>> = timestamp + elapsedtime*.
>>>>
>>>> That's wrong.
>>>>
>>>> timestamp + elapsedtime = end time *not* total time.
>>>>
>>>> The timestamp is the start time.
>>>>
>>>>> In the next step I converted the *totaltime* to a date format, like:
>>>>> *13:17:01*.
>>>>>
>>>>> I have more than 14K samples and with Excel I was able to do this
>>>>
>>>> quickly.
>>>>>
>>>>> Then I counted how many samples there were for each second. Example:
>>>>>
>>>>> totaltime    samples (requestsServed/second)
>>>>> 13:17:01     204
>>>>> 13:17:02     297
>>>>> ...          ...
>>>>>
>>>>> When I tried to plot the results I obtained the following graphic:
>>>>
>>>> [image:
>>>>>
>>>>> enter image description here]
>>>>>
>>>>> As you can notice it is far different from the first graphic.
>>>>>
>>>>> Given that the first graphic is correct, what is the mistake of my
>>>>> formula/procedure to calculate the throughput?
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
>>>> For additional commands, e-mail: user-help@jmeter.apache.org
>>>>
>>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
>> For additional commands, e-mail: user-help@jmeter.apache.org
>>
>
>
> --
>
> Ing. Sergio Boso
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
> For additional commands, e-mail: user-help@jmeter.apache.org
>

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


Re: Calculating the throughput (requests/sec) and plot it

Posted by Sergio Boso <se...@bosoconsulting.it>.
HI

there are few  points here.

1)  Throughput is described clearly here
    http://jmeter.apache.org/usermanual/glossary.html#Throughput


2)  Throughput  is part of Summary Report  and Aggregate report, which in turn are part of the standard Jmeter code.
So this question seems appropriate here.

3)  Instead of using ""Simple Data Writer"", you can use the "Write result to file" configuration. This way, you can also re-read 
the data and visualize them, after the test has been run..
This allows you do do comparison on the same data, Using a simple data writer probably introduces some skew (few msec, but the 
numbers become different)

4) interesting point about Jenkins, as a tool to automate reporting
Is there any pointer/cookbook around?

Thank you

Sergio

Il 30/11/2013 11.25, sebb ha scritto:
> On 30 November 2013 10:06, Pierpaolo Bagnasco
> <pi...@gmail.com> wrote:
>> Hi, thanks for the reply. I already corrected that formula, but it still
>> doesn't change anything.
>> I tried for example counting all samples in each 1000 milliseconds
>> interval, like:
>> first sample=1385731060500
>> last sample=1385731061394
>> difference=894 milliseconds
> That's wrong as well; you need to subract the first start time from
> the last end time.
> Or add the last elapsed time to the difference between the two start times.
>
> However, this is all academic, because the Statistical Aggregate
> Report is not a standard JMeter listener.
> Queries on it need to be sent to the maintainers of the plugin,
> whoever that may be.
>
>> samples=277
>> So I tried with: (277/894)*1000=~309 requests/second. But the first
>> graphic, in the same period, shows a throughput of ~90.
>>
>>
>> 2013/11/30 sebb <se...@gmail.com>
>>
>>> On 29 November 2013 22:39, Pierpaolo Bagnasco
>>> <pi...@gmail.com> wrote:
>>>> I'm using JMeter client to test the throughtput of a certain workload
>>>> (PHP+MySQL, 1 page) on a certain server. Basically I'm doing a "capacity
>>>> test" with an increasing number of threads over the time.
>>>>
>>>> I installed the "Statistical Aggregate Report" JMeter plugin and this was
>>>> the result (ignore the "Response time" line): [image: enter image
>>>> description here]
>>>>
>>>> At the same time I used the "Simple Data Writer" listener to write a log
>>>> file ("JMeter.csv"). Then I tried to "manually" calculate the throughput
>>>> for every second of the test.
>>>>
>>>> Each line of "JMeter.csv" has this format:
>>>>
>>>> timestamp       elaspedtime   responsecode   success   bytes
>>>> 1385731020607   42            200            true      325
>>>> ...             ...           ...            ...       ...
>>>>
>>>> The timestamp is referred to the time when the request is made by the
>>>> client, and not when the request is served by the server. So I simply
>>>> did: *totaltime
>>>> = timestamp + elapsedtime*.
>>> That's wrong.
>>>
>>> timestamp + elapsedtime = end time *not* total time.
>>>
>>> The timestamp is the start time.
>>>
>>>> In the next step I converted the *totaltime* to a date format, like:
>>>> *13:17:01*.
>>>>
>>>> I have more than 14K samples and with Excel I was able to do this
>>> quickly.
>>>> Then I counted how many samples there were for each second. Example:
>>>>
>>>> totaltime    samples (requestsServed/second)
>>>> 13:17:01     204
>>>> 13:17:02     297
>>>> ...          ...
>>>>
>>>> When I tried to plot the results I obtained the following graphic:
>>> [image:
>>>> enter image description here]
>>>>
>>>> As you can notice it is far different from the first graphic.
>>>>
>>>> Given that the first graphic is correct, what is the mistake of my
>>>> formula/procedure to calculate the throughput?
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
>>> For additional commands, e-mail: user-help@jmeter.apache.org
>>>
>>>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
> For additional commands, e-mail: user-help@jmeter.apache.org
>


-- 

Ing. Sergio Boso




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


Re: Calculating the throughput (requests/sec) and plot it

Posted by Shmuel Krakower <sh...@gmail.com>.
Maybe I got it all wrong but why don't you use jester plugins.org for
plotting/ charting the requests per second over time?
On Nov 30, 2013 12:26 PM, "sebb" <se...@gmail.com> wrote:

> On 30 November 2013 10:06, Pierpaolo Bagnasco
> <pi...@gmail.com> wrote:
> > Hi, thanks for the reply. I already corrected that formula, but it still
> > doesn't change anything.
> > I tried for example counting all samples in each 1000 milliseconds
> > interval, like:
> > first sample=1385731060500
> > last sample=1385731061394
> > difference=894 milliseconds
>
> That's wrong as well; you need to subract the first start time from
> the last end time.
> Or add the last elapsed time to the difference between the two start times.
>
> However, this is all academic, because the Statistical Aggregate
> Report is not a standard JMeter listener.
> Queries on it need to be sent to the maintainers of the plugin,
> whoever that may be.
>
> > samples=277
> > So I tried with: (277/894)*1000=~309 requests/second. But the first
> > graphic, in the same period, shows a throughput of ~90.
> >
> >
> > 2013/11/30 sebb <se...@gmail.com>
> >
> >> On 29 November 2013 22:39, Pierpaolo Bagnasco
> >> <pi...@gmail.com> wrote:
> >> > I'm using JMeter client to test the throughtput of a certain workload
> >> > (PHP+MySQL, 1 page) on a certain server. Basically I'm doing a
> "capacity
> >> > test" with an increasing number of threads over the time.
> >> >
> >> > I installed the "Statistical Aggregate Report" JMeter plugin and this
> was
> >> > the result (ignore the "Response time" line): [image: enter image
> >> > description here]
> >> >
> >> > At the same time I used the "Simple Data Writer" listener to write a
> log
> >> > file ("JMeter.csv"). Then I tried to "manually" calculate the
> throughput
> >> > for every second of the test.
> >> >
> >> > Each line of "JMeter.csv" has this format:
> >> >
> >> > timestamp       elaspedtime   responsecode   success   bytes
> >> > 1385731020607   42            200            true      325
> >> > ...             ...           ...            ...       ...
> >> >
> >> > The timestamp is referred to the time when the request is made by the
> >> > client, and not when the request is served by the server. So I simply
> >> > did: *totaltime
> >> > = timestamp + elapsedtime*.
> >>
> >> That's wrong.
> >>
> >> timestamp + elapsedtime = end time *not* total time.
> >>
> >> The timestamp is the start time.
> >>
> >> > In the next step I converted the *totaltime* to a date format, like:
> >> > *13:17:01*.
> >> >
> >> > I have more than 14K samples and with Excel I was able to do this
> >> quickly.
> >> >
> >> > Then I counted how many samples there were for each second. Example:
> >> >
> >> > totaltime    samples (requestsServed/second)
> >> > 13:17:01     204
> >> > 13:17:02     297
> >> > ...          ...
> >> >
> >> > When I tried to plot the results I obtained the following graphic:
> >> [image:
> >> > enter image description here]
> >> >
> >> > As you can notice it is far different from the first graphic.
> >> >
> >> > Given that the first graphic is correct, what is the mistake of my
> >> > formula/procedure to calculate the throughput?
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
> >> For additional commands, e-mail: user-help@jmeter.apache.org
> >>
> >>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
> For additional commands, e-mail: user-help@jmeter.apache.org
>
>

Re: Calculating the throughput (requests/sec) and plot it

Posted by sebb <se...@gmail.com>.
On 30 November 2013 10:06, Pierpaolo Bagnasco
<pi...@gmail.com> wrote:
> Hi, thanks for the reply. I already corrected that formula, but it still
> doesn't change anything.
> I tried for example counting all samples in each 1000 milliseconds
> interval, like:
> first sample=1385731060500
> last sample=1385731061394
> difference=894 milliseconds

That's wrong as well; you need to subract the first start time from
the last end time.
Or add the last elapsed time to the difference between the two start times.

However, this is all academic, because the Statistical Aggregate
Report is not a standard JMeter listener.
Queries on it need to be sent to the maintainers of the plugin,
whoever that may be.

> samples=277
> So I tried with: (277/894)*1000=~309 requests/second. But the first
> graphic, in the same period, shows a throughput of ~90.
>
>
> 2013/11/30 sebb <se...@gmail.com>
>
>> On 29 November 2013 22:39, Pierpaolo Bagnasco
>> <pi...@gmail.com> wrote:
>> > I'm using JMeter client to test the throughtput of a certain workload
>> > (PHP+MySQL, 1 page) on a certain server. Basically I'm doing a "capacity
>> > test" with an increasing number of threads over the time.
>> >
>> > I installed the "Statistical Aggregate Report" JMeter plugin and this was
>> > the result (ignore the "Response time" line): [image: enter image
>> > description here]
>> >
>> > At the same time I used the "Simple Data Writer" listener to write a log
>> > file ("JMeter.csv"). Then I tried to "manually" calculate the throughput
>> > for every second of the test.
>> >
>> > Each line of "JMeter.csv" has this format:
>> >
>> > timestamp       elaspedtime   responsecode   success   bytes
>> > 1385731020607   42            200            true      325
>> > ...             ...           ...            ...       ...
>> >
>> > The timestamp is referred to the time when the request is made by the
>> > client, and not when the request is served by the server. So I simply
>> > did: *totaltime
>> > = timestamp + elapsedtime*.
>>
>> That's wrong.
>>
>> timestamp + elapsedtime = end time *not* total time.
>>
>> The timestamp is the start time.
>>
>> > In the next step I converted the *totaltime* to a date format, like:
>> > *13:17:01*.
>> >
>> > I have more than 14K samples and with Excel I was able to do this
>> quickly.
>> >
>> > Then I counted how many samples there were for each second. Example:
>> >
>> > totaltime    samples (requestsServed/second)
>> > 13:17:01     204
>> > 13:17:02     297
>> > ...          ...
>> >
>> > When I tried to plot the results I obtained the following graphic:
>> [image:
>> > enter image description here]
>> >
>> > As you can notice it is far different from the first graphic.
>> >
>> > Given that the first graphic is correct, what is the mistake of my
>> > formula/procedure to calculate the throughput?
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
>> For additional commands, e-mail: user-help@jmeter.apache.org
>>
>>

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


Re: Calculating the throughput (requests/sec) and plot it

Posted by Pierpaolo Bagnasco <pi...@gmail.com>.
Hi, thanks for the reply. I already corrected that formula, but it still
doesn't change anything.
I tried for example counting all samples in each 1000 milliseconds
interval, like:
first sample=1385731060500
last sample=1385731061394
difference=894 milliseconds
samples=277
So I tried with: (277/894)*1000=~309 requests/second. But the first
graphic, in the same period, shows a throughput of ~90.


2013/11/30 sebb <se...@gmail.com>

> On 29 November 2013 22:39, Pierpaolo Bagnasco
> <pi...@gmail.com> wrote:
> > I'm using JMeter client to test the throughtput of a certain workload
> > (PHP+MySQL, 1 page) on a certain server. Basically I'm doing a "capacity
> > test" with an increasing number of threads over the time.
> >
> > I installed the "Statistical Aggregate Report" JMeter plugin and this was
> > the result (ignore the "Response time" line): [image: enter image
> > description here]
> >
> > At the same time I used the "Simple Data Writer" listener to write a log
> > file ("JMeter.csv"). Then I tried to "manually" calculate the throughput
> > for every second of the test.
> >
> > Each line of "JMeter.csv" has this format:
> >
> > timestamp       elaspedtime   responsecode   success   bytes
> > 1385731020607   42            200            true      325
> > ...             ...           ...            ...       ...
> >
> > The timestamp is referred to the time when the request is made by the
> > client, and not when the request is served by the server. So I simply
> > did: *totaltime
> > = timestamp + elapsedtime*.
>
> That's wrong.
>
> timestamp + elapsedtime = end time *not* total time.
>
> The timestamp is the start time.
>
> > In the next step I converted the *totaltime* to a date format, like:
> > *13:17:01*.
> >
> > I have more than 14K samples and with Excel I was able to do this
> quickly.
> >
> > Then I counted how many samples there were for each second. Example:
> >
> > totaltime    samples (requestsServed/second)
> > 13:17:01     204
> > 13:17:02     297
> > ...          ...
> >
> > When I tried to plot the results I obtained the following graphic:
> [image:
> > enter image description here]
> >
> > As you can notice it is far different from the first graphic.
> >
> > Given that the first graphic is correct, what is the mistake of my
> > formula/procedure to calculate the throughput?
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
> For additional commands, e-mail: user-help@jmeter.apache.org
>
>

Re: Calculating the throughput (requests/sec) and plot it

Posted by sebb <se...@gmail.com>.
On 29 November 2013 22:39, Pierpaolo Bagnasco
<pi...@gmail.com> wrote:
> I'm using JMeter client to test the throughtput of a certain workload
> (PHP+MySQL, 1 page) on a certain server. Basically I'm doing a "capacity
> test" with an increasing number of threads over the time.
>
> I installed the "Statistical Aggregate Report" JMeter plugin and this was
> the result (ignore the "Response time" line): [image: enter image
> description here]
>
> At the same time I used the "Simple Data Writer" listener to write a log
> file ("JMeter.csv"). Then I tried to "manually" calculate the throughput
> for every second of the test.
>
> Each line of "JMeter.csv" has this format:
>
> timestamp       elaspedtime   responsecode   success   bytes
> 1385731020607   42            200            true      325
> ...             ...           ...            ...       ...
>
> The timestamp is referred to the time when the request is made by the
> client, and not when the request is served by the server. So I simply
> did: *totaltime
> = timestamp + elapsedtime*.

That's wrong.

timestamp + elapsedtime = end time *not* total time.

The timestamp is the start time.

> In the next step I converted the *totaltime* to a date format, like:
> *13:17:01*.
>
> I have more than 14K samples and with Excel I was able to do this quickly.
>
> Then I counted how many samples there were for each second. Example:
>
> totaltime    samples (requestsServed/second)
> 13:17:01     204
> 13:17:02     297
> ...          ...
>
> When I tried to plot the results I obtained the following graphic: [image:
> enter image description here]
>
> As you can notice it is far different from the first graphic.
>
> Given that the first graphic is correct, what is the mistake of my
> formula/procedure to calculate the throughput?

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