Best Practices for Tuning CA-Roscoe for your Environment.
search cancel

Best Practices for Tuning CA-Roscoe for your Environment.

book

Article ID: 56156

calendar_today

Updated On:

Products

Roscoe

Issue/Introduction

How do I tune Roscoe?

Resolution

Tuning Roscoe involves a simple process you can take to keep Roscoe running at efficient performance levels.

In each of the steps, we have provided you the facilities to assist you in determining the optimum tuning value.

  1. MPL (Multi Programming Level)
    • Controlled by MPL= SYSIN parameter
    • Required to dispatch user transaction
    • User will wait if no MPL available
    • Excessive MPL uses excess storage
    • Formula: 3+(TERMSO/5[truncated])
    • Use CHKMPL RPF to determine the MPL usage for your site
  • LIBXLIB (Library Work Area)
    • Controlled by LIBXLIB= SYSIN parameter
    • Required for library access
    • Commands such as UPDATE require multiple buffers
    • Excessive LIBXLIB uses excess storage
    • Formula: (2*MPL) + (2*RPS) RPS is a numeric value that is equal to the number of printers that is expected to be simultaneously active during the Roscoe execution
    • Use CHKXLIB RPF to determine the LIBXLIB usage level for your site
  • AWS/ROSLIB data block size - amount of data transmitted during I/O
    • If the block size is too large - wasted space in DASD blocks
    • If the block size is small- I/O time and control memory usage will be adversely affected
    • Use AWS command - verify the AWS block size is a multiple of 8
    • Use ROSTAT to view ROSLIB block size. Verify that the ROSLIB block size is a multiple of 8. Verify that there are few dead blocks.
  • AWS/ROSLIB CACHE
    • Eliminates majority of read I/Os by caching data in memory
    • AWS - ALL Access
    • LIBRARY - Master Index Blocks & RPF Data Blocks
    • Not used if insufficient storage allocated
    • Use AWS-M command to monitor the AWS Cache
    • Use LIBCACHE command to monitor the LIBRARY Cache
  • AWS/ROSLIB DATASET PLACEMENT
    • Minimize DASD/Channel Connection
    • Place SYSAWSP and ROSLIB00 on different volumes
    • Place SYSAWSP and ROSLIB00 on low volume DASD and close to the VTOC
    • Keep all Roscoe files isolated from reservable data sets such as SYS1. and CICS data sets
    • Use Roscoe Accounting RTM reports to determine if during poor response times there are also periods of heavy Roscoe I/O activity
    • Use SYSVIEW/E or any other system performance monitoring tool to determine if there is any application reserve during periods of poor response time
  • DSF
    • Use "QUICK" lists instead of "SHORT" or "LONG" for catalog or VTOC inquiries
    • USE "DSNLPRD2=NO" in Roscoe SYSIN to allow Librarian MCD protected members to be displayed
    • Specify DSN wild card requests as:
      MY.DATA.+ not as MY.DATA+
  • CMQE
    • Controlled by CMQE= SYSIN parameter
    • Required to the number of command queue elements in the system pool that are to be allocated in common storage
    • User will wait if no CMQE available
    • There is no formula, but PEEKCMQE RPF can check the remaining CMQE for your site
  • DISPATCHING PRIORITY

Roscoe is not a resource intensive process, but rather it is almost entirely I/O bound. Its responsiveness can be somewhat degraded by competing with resource intensive processes. We suggest that all sites place Roscoe in a performance group which will give it a higher dispatching priority higher than CICS or a similar terminal system. Roscoe should have also have a higher dispatching priority than most resource intensive system tasks.

  • OTHER
    • RESTRICTING COMMANDS
      If you need to restrict a command, employ site security not the CMDEXIT. The CMDEXIT is called before the interpretation of every command and it is called at the main task level. Security is called after the command has been analyzed at the subtask level.
  • DISBUF STORAGE
    DISPLAY Buffer Storage (DISBUF=) will automatically increase when needed. The storage is retained.
  • Monitor with the Roscoe ROS137I & ROS138I shutdown messages.

 

  • ETSO TUNING - to reserve storage
    • Limit maximum number of concurrent executions in the EPL for storage critical ETSO applications to minimize storage use
    • Specify storage limits available to applications in the EPL to limit storage use by each application
    • Check for RENT/ AMODE31 versions so that a single copy of the load module can be used and that it may be loaded above the line
    • Execute storage critical applications under BTSO rather than ETSO

 

  • RDM STORAGE
    The RDM workarea is the workarea for RPF programs. The size of the area is determined from the RDMBLOCK= SYSIN parameter and may be (2k+RDMBLOCK) to (16k+RDMBLOCK).

 

  • RDM Storage may be monitored by the DMS command.

 

  • DSF LINE TABLES
    The DSF Line Tables are controlled by the DSNINDEX= SYSIN parameter. The value can be from 4k to the DSNINDEX value for each active attach.

 

  • The Roscoe ROS204I shutdown messages will monitor the data set facility statistics.

 

  • Roscoe Library Usage

 

  • The Roscoe utility program ROSTAT will monitor the Roscoe ROSLIBS and report on the total number of blocks, the number of blocks free, the number of records and the number of dead blocks.

 

  • The RECLAIM option of LIBUTIL may be used to reclaim dead blocks. The ADDLIB facility can be used to add storage to the ROSLIBS. LIBUTIL is also used to BACKUP and RESTORE the ROSLIBS.

 

Sample RPFs


<<CHKMPL>>

:*--------------------------------------------------------------------*
:* Display MPL values for user information *
:*--------------------------------------------------------------------*
CREATE AWS TEMP RPF
LET L3 = PEEK('ROT+374%+4' '4')
LET L4 = DEC(PEEK('ROT+3A4' '2'))
LET L6 = DEC(SUBSTR(L3 1 4))
LET L5 = DEC(SUBSTR(L3 5 4))
WRITE AWS T
'** MPL= ' | L4 | ' Maximum= ' | L5 | ' Current= ' | L6
ENDWRITE
ATTACH
PAUSE
DISCARD AWS *
RETURN


<<CHKXLIB>>
:*--------------------------------------------------------------------*
:* Display LIBXLIB values for user information. *
:*--------------------------------------------------------------------*
CREATE AWS TEMP RPF
LET L2 = PEEK('LBCT+38%+A' '6')
LET L4 = DEC(SUBSTR(L2 1 4))
LET L6 = DEC(SUBSTR(L2 5 4))
LET L5 = DEC(SUBSTR(L2 10 4))
WRITE AWS T
'** LIBXLIB= ' | L4 | ' Maximum= ' | L5 | ' Current= ' | L6
ENDWRITE
ATTACH
PAUSE
DISCARD AWS *
RETURN


<<PEEKCMQE>>                                                      
:*--------------------------------------------------------------------*
:* Display CMQE values for user information. *
:*--------------------------------------------------------------------*
CREATE AWS TEMP RPF                                              
WRITE AWS *+1  '**'                                               
LET L4 = PEEK('ROT+DE' '2,HEX')      : # OF ALLOCATED CMQES       
LET L5 = PEEK('ROT+580%+2A' '2,HEX') : # OF FREE CMQES FROM RJIB  
WRITE AWS *+1  '**  ALLOCATED CMQE=' | DEC(SUBSTR(L4 1 4))        
WRITE AWS *+1  '**  FREE CMQE='      | DEC(SUBSTR(L5 1 4))        
WRITE AWS *+1  '**'                                               
ATTACH                                                            
PAUSE                                                             
DISCARD AWS *                                                     
RETURN