3
votes

I have thread group of 15 threads, each sending a 32KB image (HTTP POST). Under summary report, I have the throughput at 550/sec, average response time: 25ms and the KB/sec is shown as 148KB/sec. I am finding it difficult to correlate these numbers. if I can manage 550 req/sec and each req is 32KB, shouldn't the KB/sec be 550 * 32 KB/sec?

EDIT: Even when I send only one request, the number under KB/Sec just does not make sense. I am able to correlate all other numbers. The summary report for 1 request:

Samples: 1
Average: 25
Min: 25
Max: 25
Std.Dev: 0
Error: 0%
Throughput: 40/sec
KB/Sec: 10.62
Avg. Bytes: 272.

It is pretty easy to correlate average time and throughput from the above result. The size of the image that I am transmitting is 32281 bytes (as reported by linux OS). As pointed out by aroth in comments, I doubt whether this has to do anything with compression. I tried sending a 1MB image, the KB/Sec reported was 12.3.

1
How are you measuring the 550/second request rate?aroth
It is what jmeter reports under throughput column under summary report.Prasanna
All the references that I can find seem to indicate that jmeter reports throughput in requests per minute, not requests per second. And 550 requests per minute is roughly in the ballpark of what can be expected given your other numbers there (well actually, it takes about an average of ~300 KB/sec to reach 550 uploads per minute, but maybe that 148 KB/sec is an instantaneous reading, or perhaps there is some compression being applied to the 32 KB image, or perhaps the 32 KB image is actually slightly smaller than 32 KB, etc.).aroth
No, the throughput being reported is 550 req/second, not minute. I am not sure about any huge compression is taking place as I am sending a JPEG image with Transfer encoding header as binary.Prasanna
How do you request an image via a POST request? In general you would send the POST to a controller, who will respond with an HTML file. may send an HTML file that contains a reference to a single 32KB fileMarcFasel

1 Answers

0
votes

The maths in the example for 1 request looks correct to me.

Samples: 1
Average: 25
Min: 25
Max: 25
Std.Dev: 0
Error: 0%
Throughput: 40/sec
KB/Sec: 10.62
Avg. Bytes: 272.

As per your data above, 40 requests a second, at an average of 272 bytes = (40*272) 10880 bytes a second throughput (which when divided by 1024 is 10.625).

The question is surely just why JMeter thinks the average request size 272bytes and you think it is 32k - are you sure the image is being attached? if so I would assume there is some fairly hefty compression going on.