When drawing a graph of the response time performance of a system with increasing load it will usually follow a standard profile, namely:
A very low load increasing the load will actually improve the performance of the system slightly. This is because most systems use various caching mechanisms and if there is too little load none of the caches will have data in.
- As the load increases a near flat region will be experienced, where all requests act as if they have near dedicated resources available to them.
- As the load increases further requests will tend to be contending for resources on an increasingly frequent basis. Thus, the resultant response time will show a near-linear increase with increasing load.
- If further load is added the system will start to demonstrate queuing behaviour, with most requests having to queue for each resource they require. The system response will now degrade far more rapidly with increasing load, and eventually the system will fail.
This behaviour is well known among people used to stress testing, but is less well known outside that circle. The important point to note is that if a system does not show this behaviour under load it is worth investigating why not. The chances are that there is either a system problem or a problem with the test process being used. If you have a system that does not show this profile and need some support in the analysis then please feel free to contact me at firstname.lastname@example.org, or call on +44 7887 536083.