Performance is the way a computer system behaves given a particular workload. It can be measured through the system's response time, throughput, and availability; and it is affected by:
In general, you should undertake performance tuning when you want to improve the cost-benefit ratio of your system. Specific goals would be:
Translating performance from technical terms to economic terms is difficult. Performance tuning certainly costs money (through people's time and through processor time), so before you undertake a tuning project, weigh its costs against its possible benefits. Some of these benefits are tangible, such as more efficient use of resources and the ability to add more users to the system, others such as greater user satisfaction because of quicker response time, are intangible. All of these benefits must be considered.
The following guidelines should help you develop an overall approach to performance tuning.
Remember the Law of Diminishing Returns: Your greatest performance benefits usually come from your initial efforts. Further changes generally produce smaller and smaller benefits and require more and more effort.
Do Not Tune Just for the Sake of Tuning: Tune to relieve identified constraints. If you tune resources that are not the primary cause of performance problems, this has little or no effect on response time until you have relieved the major constraints, and it can actually make subsequent tuning work more difficult. If there is any significant improvement potential, it lies in improving the performance of the resources that are major factors in the response time.
Consider the Whole System: You can never tune one parameter or system in isolation. Before you make any adjustments, consider how it will affect the system as a whole.
Change one Parameter at a Time: Do not change more than one performance tuning parameter at a time. Even if you are sure that all the changes will be beneficial, you will have no way of evaluating how much each change contributed. You also cannot effectively judge the trade-off you have made by changing each parameter. Every time you adjust a parameter to improve one area, you almost always affect at least one other area.
Measure and Reconfigure by Levels: For the same reasons that you should only change one parameter at a time, tune one level of your system at a time. You can use the following list as a guide:
Check for Hardware and Software Problems: Some performance problems may be corrected by applying service, either to your hardware, through an engineering change (EC) or microcode assists, or to your software through a program temporary fix (PTF). Do not spend excessive time monitoring and tuning your system, when simply applying service may make it unnecessary.
Understand the Problem Before you Upgrade your Hardware:
Even if it seems that additional storage or processor power could immediately improve performance, take the time to understand where your bottlenecks are. You may spend the money on additional DASD only to find that you do not have the processing power or the channels to exploit it.
Put Fallback Procedures in Place Before You Start Tuning: As noted earlier, some tuning can cause unexpected performance results. If this leads to poorer performance, it should be reversed and alternative tuning tried. If the former setup is saved in such a manner that it can be recalled, the backing out of the incorrect change becomes much simpler.
Use the following process to improve the performance of any system:
Periodically, or after significant changes to your system or workload:
There are limits to how much you can improve the efficiency of a system. Consider how much time and money you should spend on improving system performance, and how much the spending of additional time and money will help the users of the system.
Your system may perform adequately without any tuning at all, but it probably will not perform to its potential. Unfortunately using the default tuning parameters is usually not a good solution. Each database is unique. As soon as you develop your own database, and applications to use it, investigate the tuning parameters available and learn how you can customize their settings to reflect your situation. In some circumstances, there will only be a small benefit from tuning a system, however in most, the benefit may be significant.
As your system approaches a performance bottleneck, it is more likely that tuning will be effective. If you are close to this and you increase the number of users on the system by, say, 10 percent, the response time is likely to rise by much more than 10 percent. However, there is a point beyond which tuning cannot help you. At that point, the only thing to do (other than adding new hardware) is to change your objectives.