A performance problem may be identified by slow or unresponsive systems which could be real or anticipated. This usually occurs because high system loading, causing some part of the system to reach a limit in its ability to respond. This limit within the system (the part at capacity) is referred to as a bottleneck. A system's ability to accept higher load is called scalability, and modifying a system to handle a higher load is synonymous to performance tuning. A handful of techniques are used to improve performance. Among them are?
- code optimization,
- configuration optimization,
- load balancing,
- caching strategy,
- distributed computing
- and self-tuning.
A tuning test is the test to find system bottlenecks, locate the root causes and improve the performance by solving them. Tuning tests often implemented by increasing system load. It is different form the load testing since the latter tests for certain performance goals or requirements. System tuning should follow the rule of testing-analyzing-resolving cycle for quality assurance which could involve the following steps:
- (Baselines) Assess the problems and establish numeric values (baselines) that categorize acceptable behavior.
- (Testing) From a certain start point, measure the performance of the system before any modification.
- (Analyzing) Identify the part of the system that is critical for improving the performance.
- (Resolving) Locate the root causes, modify that part of the system to remove the bottleneck.
- (Testing) Run a appropriate level of test, measure the performance of the system after modification.
- Improved performance — If further tuning is needed, go to analyzing step. Otherwise, stop it.
- Degraded performance — Did the change cause a bottleneck somewhere else and did it right? Go to analyzing step
- Had no impact on performance — Overall system reach its limit? Did the change right? Stop the test or go to analyzing step.
Note that for some self-tuning systems, tuning tests are not to remove the bottlenecks. They are intended to rectify external disturbances.