A Guide to Performance Tuning

System performance tuning can be a tedious job. But it is also an important, ongoing job. Performance tuning on an iSeries or AS/400 system starts with balancing resources such as CPU, memory and disk storage. By properly balancing system resources, all jobs can run at their optimal level, with minimal resource conflicts.

System values play a key role in overall system performance. Reviewing system values such as QMCHPOOL, QMAXACTLVL, QPFRADJ, QACTJOB and QTOTJOB can improve performance and resolve certain performance problems. Let's examine the role of these values in system performance more closely. Note that details on the following information are available in the manual, "OS/400 Work Management" (SC41-5306). The manual, which was last updated in V4R4, can be viewed at IBM's AS/400 Online Library.

QMCHPOOL-This value represents the size of the machine storage pool. The machine storage pool contains highly shared machine and OS/400 licensed programs. If the QMCHPOOL value is set too small, system performance can be severely inhibited. For new systems, the recommended initial size of QMCHPOOL is at least two to three times the reserved size of the pool depending on faulting in the pool.

QMAXACTLVL-This value is the number of jobs/threads that can simultaneously compete for memory and CPU. QMAXACTLVL should be set to *NOMAX. Then use the activity levels within the work with shared storage pools command (WRKSHRPOOL) to control the activity level of each system pool.

QPFRADJ-This value dynamically adjusts (at a rate of approximately every 20 seconds) memory and activity levels for all shared pools on the system. QPRFADJ is often underutilized because administrators are less likely to use it if they already have allocated memory to optimize the performance of specific applications. However, QPFRADJ features configuration parameters via WRKSHRPOOL and PF11, which allow administrators to establish priorities for adjusting shared pools, set minimum and maximum pool sizes and determine pool-faulting and job/thread levels. Though introduced with OS/400* V3R7, many users remain unfamiliar with these options. While effectively setting these parameters overrides QPFRADJs ability to adjust memory of shared pools, QPFRADJ is still worthwhile because it allows the system to benefit from expert cache. Expert cache enhances the use of memory on the system and dynamically controls how long and which portion of objects remain in memory.

QACTJOB-This is the number of active jobs in which auxiliary storage is allocated during an IPL. The value should be set about 10 percent greater than the number of active jobs found on the work with active jobs command (WRKACTJOB) during the busiest time in a day.


Memory issues can be observed interactively from WRKSYSSTS or by analyzing the system, component or pool reports produced by Performance Tools.

Brandon Rau is a staff software engineer at the IBM Rochester (Minn.) Support Center. He can be reached at



2018 Solutions Edition

A Comprehensive Online Buyer's Guide to Solutions, Services and Education.

Configuring AEM to Monitor Power Usage

How to better utilize your available power

Handling Your Sticky Situations

Gain knowledge and save time with iDoctor Situational Analysis

IBM Systems Magazine Subscribe Box Read Now Link Subscribe Now Link iPad App Google Play Store
IBMi News Sign Up Today! Past News Letters