Admin Alert: Tuning i5/OS Storage Pools for Performance
December 3, 2008 Timothy Prickett Morgan
Most i5/OS administrators know about setting up automated performance tuning and they also know how to assign individual storage pools to different subsystems. But many people don’t know that they can also tune storage pools for more efficient system processing. This week, I’ll cover some of the finer points of storage pool configuration and how a little extra tuning can make a big difference in memory performance.
Two Ways To Tune Pools
Individual storage pools adjustments can be made by using the green-screen Work with Storage Pools (WRKSHRPOOL) command or by using iSeries Navigator (OpsNav). The key is to tweak individual pool values so that they augment automatic performance tuning and increase system efficiency.
For this article, I’ll show you how to make these adjustments by using WRKSHRPOOL and then I’ll discuss how to make the same changes by using OpsNav.
After executing the WRKSHRPOOL command, you’ll see a screen that looks like this:
Work with Shared Pools System Main storage size (M) . : 18672.00 Type changes (if allowed), press Enter. Defined Max Allocated Pool -Paging Option-- Pool Size (M) Active Size (M) ID Defined Current *MACHINE 1152.79 +++++ 1152.79 1 *FIXED *FIXED *BASE 1632.37 232 1632.37 2 *CALC *CALC *INTERACT 5601.58 48 5601.58 6 *CALC *CALC *SPOOL 815.84 22 815.84 4 *CALC *CALC *SHRPOOL1 3422.30 10 3422.30 7 *CALC *CALC *SHRPOOL2 429.93 10 429.93 9 *CALC *CALC *SHRPOOL3 186.71 30 186.71 8 *CALC *CALC *SHRPOOL4 1398.39 47 1398.39 12 *CALC *CALC *SHRPOOL5 622.17 32 622.17 5 *CALC *CALC *SHRPOOL6 2956.50 47 2956.50 10 *CALC *CALC
This is the standard WRKSHRPOOL screen that everyone is familiar with. Here you can change the Paging Option value on each storage pool to define whether the pool is fixed (*FIXED, where it cannot be changed by automated performance tuning) or whether it should be defined as a calculated storage pool (*CALC, where performance tuning can automatically adjust the pool size and activity levels). When using calculated storage pools, storage pool size and activity levels are dynamically adjusted according to the machine’s performance tuning settings. You can also change the defined size and maximum activity levels for most of your storage pools on this screen.
Many people don’t realize that if you press F11 on the WRKSHRPOOL screen, it will allow you to define individual storage pool limits that i5/OS will use during performance tuning. WRKSHRPOOL looks this way after pressing F11.
Work with Shared Pools System: Main storage size (M) . : 18672.00 Type changes (if allowed), press Enter. -----Size %----- -----Faults/Second------ Pool Priority Minimum Maximum Minimum Thread Maximum *MACHINE 1 6.00 100 10.00 .00 10.00 *BASE 1 5.03 100 12.00 1.00 200 *INTERACT 1 10.00 30.00 12.00 1.00 200 *SPOOL 2 1.00 100 5.00 1.00 100 *SHRPOOL1 2 5.00 100 10.00 2.00 100 *SHRPOOL2 2 1.00 100 10.00 2.00 100 *SHRPOOL3 2 1.00 100 10.00 2.00 100 *SHRPOOL4 2 3.00 100 10.00 2.00 100 *SHRPOOL5 2 1.00 100 10.00 2.00 100 *SHRPOOL6 2 1.00 100 10.00 2.00 100
On this screen, you can set or expand storage pool limits that will be used as each pool is adjusted by the i5/OS performance tuner. The following adjustment values can be set for your storage pools.
Priority–The storage pool priority (1-14). The lower the number, the higher priority the storage pool has. The performance tuner looks at storage pool priorities as it considers the order in which the pools should be adjusted. By default, the machine pool (*MACHINE), base storage pool (*BASE), and the interactive pool (*INTERACT) have the highest priorities (1), while all the other pools have a lower priority (2). You cannot change the machine pool’s priority, but you can assign different priority levels to other system pools. By tweaking the priority levels, you can tell the performance tuner which storage pools should be tuned first and which pools can wait. On my Capacity BackUp (CBU) unit i 550, I set the storage pool that I use for the replication subsystem to priority 1, so that it will be adjusted sooner as my high availability software replicates data between my systems.
Minimum and Maximum Size %–These numbers represent the smallest and largest sizes that each storage pool can be set to. Maximum and minimum sizes are entered as a percentage of the total working memory (RAM) available on the system. You can set a higher minimum percentage if you want to guarantee that a storage pool always contains a certain amount of RAM while it performs its processing. Alternatively, you can set a lower maximum percentage of total RAM to a pool, so that no one storage pool gobbles up too much memory. By default, the maximum size percentage for each storage pool is 100 percent (they can take as much RAM as they can get). For many (but not all) storage pools, the minimum percentage size is one percent of total RAM, and you may want to raise that value that for critical storage pools such as *MACHINE or *BASE.
Faults/Second settings–In these fields, you can set targets for the number of page faults per second to use for each storage pool. If you feel that some storage pools can tolerate more page faults as they process subsystem work, you can set the Minimum Faults/Second higher than its default setting. If you are looking to lower storage pool faulting as it processes work for another subsystem, you can lower the Maximum Faults/Second value and the performance tuner will take that value into account as it adjusts the storage pool. Under the Thread Faults/Second value for each storage pool, you can specify a target additional number of page faults to add to the storage pool for each active thread that is currently using the pool. In my experience, I will sometimes set the Maximum Faults/Second for a critical pool lower to try to improve throughput. I hardly ever change the Minimum Faults/Second value or the thread faults/second for a storage pool.
If you change any one of these values and you want to set it back to its default, simply type in *DFT under that setting and i5/OS will change the value back to its default setting.
Doing It OpsNav Style
Storage pool performance values can also be changed in iSeries Navigator. To modify these settings in OpsNav, open the Work Management→Memory Pools→Shared Pools node under your partition. All the available storage pools will show up in OpsNav’s right-hand pane. Double click on the storage pool that you want to change the settings for. A Properties window for that storage pool will appear. Right-click on the Tuning tab in the window and you’ll be able to change all the same values for that pool that were available under the WRKSHRPOOL screen. If you want to change the settings back to their default value, simply click on the “Reset to Defaults” button on that screen.
About Our Testing Environment
This article was tested on a System i 550 partition running i5/OS V5R4. We tested the OpsNav features by using the iSeries Navigator program that came with iSeries Access for Windows V5R4M0. Information presented here may also work with earlier versions of the i5/OS and OS/400 operating systems and with pre-V5R4M0 versions of iSeries Navigator. However, earlier versions may have slightly different features due to improvements that were made from release to release.