Are you a DB2 10 user thinking about implementing 1MB page frames?
If you already have page-fixed buffer pools and can convince your sysprog that the potential benefits are worth it (up to 6% CPU savings have been seen), you’ll need to decide how big to make the large page frame area. This is set by the LFAREA parameter in IEASYSnn PARMLIB, and can be expressed as a % of the total available storage, or as an absolute value in MB or GB (subject to a maximum of 80% of available storage on the LPAR).
This setting needs an IPL to take effect, so it’s important to get it right first time – make LFAREA too big and those 1MB page frames may not be used, make it too small and some or all of your buffer pools may be split between 4K and 1MB frames which will reduce the benefits. You may also need to allow for other users of LFAREA – page-fixed DB2 buffer pools are by far the major users of large page frames currently, but Java heaps can also exploit it.
z/OS is able to “decompose” 1MB page frames into 256 4K frames if it gets short on storage, but this is inefficient and should be avoided. You can use the DIS BUFFERPOOL(BPn) SERVICE=4 command (as described in a DB2 Greek article here) to determine how many 4K and 1MB frames are being used by a given bufferpool. If you’ve under-sized LFAREA, you’ll probably see some use of 4K pages reported here, but how can you determine if LFAREA has been set too high and you’re suffering from overheads due to 1MB frame decomposition?
The /DISPLAY VIRTSTOR,LFAREA operator command is a good option. Issuing this once DB2 has “warmed up” and allocated all of its bufferpool storage will give you a current and high watermark counters for both the amount of LFAREA being used for 1M frames (good) and the amount that has been decomposed to 4K frames (not good). These are shown in bold in the sample output below, and should be zero under normal circumstances – otherwise consider reducing LFAREA at your next IPL.
/DISPLAY VIRTSTOR,LFAREA
IAR019I 12.31.04 DISPLAY VIRTSTOR
SOURCE = GS
TOTAL LFAREA = 1024M
LFAREA AVAILABLE = 1023M
LFAREA ALLOCATED (1M) = 10M
LFAREA ALLOCATED (4K) = 2M
MAX LFAREA ALLOCATED (1M) = 10M
MAX LFAREA ALLOCATED (4K) = 2M