BUFFER_POOL_DEF CPU usage high at MUF start-up

Document ID : KB000091772
Last Modified Date : 17/04/2018
Show Technical Document Details
Issue:
We are experimenting with replacing some COVERED definitions with BUFFER_POOL_DEF/CONTENT.
 
Existing COVERED definition:
 
COVERED IXX177,75%
COVERED A01177,100%
COVERED A05177,80%

DBID Area Type Open Size Blocks MaxBlks 177 A01
COVERED ACTIVE 109M 4106 4106 . A05
COVERED ACTIVE 939M 35200 35200
IXX COVERED FIRST 426M 109k 109k

*********************************************
New BUFFER_POOL_DEF/CONTENT definition:
 
BUFFER_POOL_DEF IXX01,4K,2500 IXX177
BUFFER_POOL_DEF DXX01,4K,99999 IXX177
BUFFER_POOL_DEF DATA01,27998,39306 A01/A05 177
BUFFER_POOL_CONTENT IXX01,177
BUFFER_POOL_CONTENT DXX01,177
BUFFER_POOL_CONTENT DATA01,A01177,A05177

(IXX buffer calculation is accurate based on DEFRAG output)

The overall storage allocation within one MUF (without shadow) is therefore neutral. However, with just this one set of buffer pool definitions, MUF start-up is significantly slower and CPU usage (general processor) is high (CPU spinning to 80%+ for both primary and shadow start-up).

With COVERED:

JOBNAME STEPNAME PROCSTEP EXCP CNT C CPU TIME CMUF00 CMUF00 DBMUF 2517 0.19 CMUF10 CMUF10 DBMUF 1210 0.10

With BUFFER_POOL_DEF:

JOBNAME STEPNAME PROCSTEP EXCP CNT C CPU TIME CMUF00 CMUF00 DBMUF 2517 28.09 CMUF10 CMUF10 DBMUF 1210 28.72
Environment:
z/OS 
CA Datacom 15.1 
Cause:
Alternate buffer pools add some overhead to the process and that is expected due to acquiring additional storage for each buffer pool content one defines. As MUF starts up the MUF acquires the storage pools in junks.
Resolution:
Since the concern is about  GP CPU usage, what you can do to move from GP/CP time to zIIP time:
1. Code small values for buffer content…for number of buffers like 1 or 2 or 10 during MUF startup.
2. Once MUF enable use the MUF console API to add to the buffer content pool .That action will run under zIIP CPU.

We cannot define the buffer pool after MUF startup but you can control the number of buffers and what DBID share that buffer pool through the MUF Console API This process above of adding buffer pools can run as soon as MUF enables so you can use MVS OPS to drive this activity to grow the buffer pools under zIIP. All of this is predicated you do not mind using zIIP CPU and want to reduce GP/CP time.
You see the console commands running under zIIP engines (SRB’s) when this runs.
Additional Information:
Examples of MUF console commands:  
 
01.35.42 STC14263 CMUF00:DB01311I - BUFFER_POOL_COUNT IXX01,2500 
01.35.42 STC14263 CMUF00:DB01335I - CONSOLE SCHEDULED - BUFFER_POOL_COUNT IXX01,2500 
01.35.42 STC14263 CMUF00:DB00608I - CONSOLE COMPLETE - BUFFER_POOL_COUNT IXX01,2500 
01.36.43 STC14263 CMUF00:DB01311I - BUFFER_POOL_COUNT DXX01,99999 
01.36.43 STC14263 CMUF00:DB01335I - CONSOLE SCHEDULED - BUFFER_POOL_COUNT DXX01,99999 
01.37.07 STC14263 CMUF00:DB00608I - CONSOLE COMPLETE - BUFFER_POOL_COUNT DXX01,99999 
01.47.42 STC14263 CMUF00:DB01311I - BUFFER_POOL_COUNT DATA01,39306 
01.47.42 STC14263 CMUF00:DB01335I - CONSOLE SCHEDULED - BUFFER_POOL_COUNT DATA01,39306
01.47.43 STC14263 CMUF00:DB00608I - CONSOLE COMPLETE - BUFFER_POOL_COUNT DATA01,39306