What do we need to make note of during load testing. What are the most important things to care for?
Two most important metrics are :
- Response time
- Throughput.
Response time indicates how long it takes for a request to complete
Throughput indicates what is the rate of requests/transactions being completed.
Note that these two metrics are related, but are not tightly-coupled (i.e change in one does not necessarily have a deterministic effect on the other). Although increased response time can lead to decrease in throughput (and vice versa) it is not strictly the case. This is a common misconception.
The type of system that you are building is going to determine which one is more important. Generally, if you are building an interactive system (i.e: user initiates an action and waits for a response) then response time is more important. In your example, would you be OK if it took Google 45 seconds to return results for a search request? Or it took 45 seconds to logon to your online banking system? Or pay for something on Amazon? Probably not. Conversely, do you care how many search requests Google is processing per second? Or orders Amazon completing per second? Probably not. You only care about how long your request takes to complete. So you are interested in response time, not throughput.
If, however, you are building a batch processing system. Such as a monthly statement generator, or a data replication process, you are more likely to be concerned with how many transactions can be completed withing a specific time frame.
In terms of concurrent threads, this is a way to determine how well your system will scale. For example, let's say that your page page load time for a single request is 2 seconds with a single request. What if you have two concurrent threads making requests to your system? Is page load time still 2 seconds? Is it two seconds for one user/thread and 4 seconds for the other? Is it something > 2 seconds? What about for 10 concurrent users/threads? 25? 50? 100?
Comments