gaganshera
gaganshera

Reputation: 2639

Estimate amount of load / concurrent hits a system can handle

We have a system that has the capacity to handle 100 TPS (transactions per second). How can this be roughly translated to calculate the amount of concurrent hits and sessions (mostly http traffic) it would be easily able to handle?

I need a rough estimate as to how much traffic systems can support based on their TPS as marketed by the selling companies.

Upvotes: 0

Views: 815

Answers (2)

Dmitri T
Dmitri T

Reputation: 168072

Not knowing that "transaction" means in the context of your application it is not possible to come up with the comprehensive answer, if you already have a JMeter load test which produces 100 TPS and would like to know what is the actual number of HTTP Requests which your system is processing, from JMeter side it can easily be measured using Server Hits Per Second plugin (can be installed using JMeter Plugins Manager)

If you don't have the test right away and would like to measure the system performance I would recommend going for Stress Testing

  1. Make sure that each and every JMeter thread (virtual user) is representing a real user with all its stuff (credentials, headers, cookies, cache, think time, etc.)
  2. Start your test with 1 virtual user and gradually increase the load until:

    • you reach 100 TPS
    • response time starts increasing/throughput starts decreasing
    • errors start occurring

whatever comes the first

At this point you can see how many virtual users were online using Active Threads Over Time listener and how many server hits per second they produced using the aforementioned "Server Hits Per Second" listener.

Upvotes: 1

Ori Marko
Ori Marko

Reputation: 58772

If you know the limitation is 100 transactions per second, so also concurrent user or JMeter's threads should be limit by 100, because you should avoid allowing JMeter sending more than 100 concurrent requests

If your HTTP responses return fast, meaning in less than 1 second, for example half a second, then your your thread limit should be reduce accordingly, e.g. 50 (100/2), because each thread will send 2 request per second.

Also if you have parallel HTTP requests you may need to reduce thread also accordingly ( using parallel controller or download parallel HTTP resources)

Upvotes: 1

Related Questions