0

In Jmeter, I am using the "Bytes Throughput Over Time" to check the maximum bps that my website can handle. (To be exact, it's to check the maximum bps my website can handle after it has gone through my reverse proxy system)

It seems like if I just simply run one user, it will not be able to test the maximum bps. Here's an example photo of the graph using 5 threads, 0.5s ramp up, and 100 loops.

bps graph

Test properties

However, when I make it 100 threads, the bps increases by magnitudes. I suspect that this is because requests take time to send, so you can't get the maximum by waiting for each request to be done before sending a new one.

Then, what is the correct way to get the maximum bps? Is it by incrementally increasing the number of threads until there are error responses? Is it by using "Use multipart/form-data for POST" and downloading a file instead of doing a standard GET request?

Any help would be greatly appreciated.

marumaru
  • 55
  • 5
  • Check https://stackoverflow.com/questions/17288545/jmeter-understanding-ramp-up – Ori Marko Aug 14 '17 at 07:33
  • Hey thanks for the comment, but could you explain how that is related to my question? – marumaru Aug 14 '17 at 07:37
  • Try to match the ramp up with Threads, as 100 – Ori Marko Aug 14 '17 at 07:39
  • I did what you said. 10 threads with 10s ramp up plateaus around 100,000 bytes/sec. 100 threads with 100s ramp up plateaus around 350,000 bytes/sec. As I mentioned, the bps increases when threads are increased. So the question of how to test the max bps still remains. – marumaru Aug 14 '17 at 07:59

1 Answers1

0

When you increase the amount of threads JMeter will generate more new threads and they all execute the request you have in your test in parallel, thus more threads -> more requests sent simultaneously at your website -> overall bytes received per second increases.

What are you trying to achieve by finding this max bps value? Because there probably isn't one single correct way to do it.
If you just want to find the point where the bps doesn't increase anymore you could just add more threads until the bps stays the same and doesn't increase anymore, but you might not be able to generate and run enough threads for this on a single machine. You could be able to hit the max limit with fewer threads if you try to download a file or something like you suggested.

tjeroo
  • 1
  • 1
  • That is what I was thinking, but I wasn't sure if there was some overhead I had to consider from doing stuff like increasing threads or downloading a file – marumaru Aug 16 '17 at 00:25
  • Could the number of threads be a bottleneck before it reaches the max bps? Because after a certain point, I start to get timeout errors for some requests, but I would still get more bps as I increase threads. I don't really think increasing threads when I get timeout errors is useful. – marumaru Aug 16 '17 at 02:13
  • Most likely the website isn't able to response to some of the threads that are sending requests to it, which means that your service isn't able to properly serve that many users concurrently. I'd say the "max" bps in your case is at the point where you have the most threads, while still no errors. – tjeroo Aug 16 '17 at 09:10