Load and performance measurements

There are many factors that can impact system load and performance, and these can be measured with the goal of improving performance.

When measuring performance, it is important to account for extraneous load. If a system has a significant amount of usage outside the process being measured, the elapsed time for the process is likely to be longer than when the system has less use. Even though the process has much of the same resource needs, such as memory or CPU processing power, in a busy or a quiet environment, heavy competition for those resources can stall execution. For this reason, elapsed time, or wall time as an example, is not the most appropriate measure of performance for a heavily used system.

Performance metrics should attempt to isolate the process being monitored. Better alternatives to elapsed time include user/system time or CPU time. When measuring CPU use, the proportion used by each application should be noted. Lastly, performance metrics should be done on a system with as little extraneous load as possible.

Occasionally, the combined user/system time or the CPU time of an execution will be acceptable, but the elapsed time is too high. In such cases, reducing the impact of extraneous load should reduce the gap between the two times. The impact results from a scarcity of one or more resources. Whether the scarce resource is CPU processing power or memory, reducing the impact of external load requires increasing the amount of the contested resources available.

Increasing the amount of a specific resource can usually be done in a number of ways.

For example, if a system is at 100% CPU use because of extraneous load, there are a number of options for reducing that load:

  • Tune the application. On a system constrained by CPU power, tuning the application for CPU usage will reduce its overall run time.
  • Tune other applications. Reducing the CPU needs of the applications making up the extraneous load will free up some computational power. You should tune the focal application before tuning the other applications. For best results, request assistance from your systems administrator.
  • Reduce the application load. Reducing the number of applications running will free up CPU power for the focal application. Unfortunately, this is not an option in many cases.
  • Obtain additional processors. Additional processors will increase the amount of CPU power available. Assuming that the extraneous load remains constant, this leaves more CPU power available for the focal application. The amount of improvement will depend on the applications running and the underlying operating system.
  • Use faster processors. Replacing the existing processors with faster models will increase the amount of CPU power available.

Because every situation presents its own set of performance variables, each situation must be evaluated to determine the best option to use.