AS/400 :: Robots :: Microcontroller :: Electronic :: Downloads :: Links :: Site History

feedback :: home








This site contains some useful information about AS/400 work management and performance

  1. Controlling Subsystem

    If you donīt have a very small system, you should always use QCTL as your controlling subsystem. Youīll get a lot more option to taylor the system for your needs. The controlling subsystem is defined by the system value QTCLSBSD.

  2. Startup program

    The startup programm shipped by IBM is QSTRUP in library QSYS. To change it use RTVCLSRC to get the sourcecode. Change the programm and create it at a different location or with a different name. Donīt overwrite the original. Then change the system value QSTRUPPGM to the new startup programm.

  3. Performance Adjuster and Expert Cache

    The behavior of the performance adjuster is controlled by the system value QPFRADJ. Set this value to 0 to turn the adjuster off or set it to 3 to turn it on. Adjusting at IPL time doesnīt make much sense. Setting the system value to 3 the storage pool sizes are checked every 20 seconds and changed if needed. The expert cache is activated when you change the paging from *FIXED to *CALC. Expert cache and performance adjuster do not work very well together, so you should decide which one is better for you. If you are using java or other thread intensive workload, you should change the activity level for the pool ( usually this is the BASE pool )where the programms run to a high level ( ca 1000 ). In most cases the performance adjuster will set this value down to a lower leve. So you have to optimize the poolsizes by hand and set QPFRADJ to 0.

  4. Batch jobs should not run in the BASE pool

    To prevent batch jobs from disturbing other tasks, they should not be running in the BASE pool. You have to create one or moreSHARED pools to do this The pool has to be addes to the subsystem discription. Maybe QCMN should become a different pool too.

  5. More than one interactive subsystem

    Somtimes it is better to have more than one interactive subsystem. If you have more than 300 active jbs in your interactive subsystem you should use a second interactive subsystem to split the work. The sybsystem monitor job has to handle all the action that have to be done in a sequentiell order. Sometimes you want to do different things in different syubsystems. To create an interactive subsystem, just copy the qinter SBSD to a different name. To control which workstation is going to which subsystem you have to add workstation entrys to the subsystems otherwise the subsystem will take all the workstations it can get. workstation entrys cann be added by type or by name. Normally you have more control over worstation names. To get a workstation with a given name running in your subsystem you have to add it. This is done with ADDWSE and the parameter at *SIGNON. Every other interactive subsystem shoult have a workstaionentry with at *ENTER.

  6. The User Profile QSECOFR

    Like for all IBM supplied User Profiles the default password should be changed. Changing the QSECOFR password is required at installation time. Because QSECOFR is a profile with all authorities maybe you should go one step ahead. Unfortunally some software needs to be installed under the QSECOFr profile. One special thing for QSECOFR is, if you set the user profile to DISABLED, QSECOFR can sign on at the console. So if your console is on a save place in a server room this is a good protection method.

  7. The dynamic priority scheduler

    The dynamic priority scheduler takes care that jobs which consumes much CPU and are holding an activity level for a long time are getting their priority changed. So other jobs on the same priority level will get CPU time too. The dynamic priority scheduler is controlled by the system values QDYNPTYSCD and QDYNPTYADJ. The effect is that no single interactive job can block the whole CPU and other jobs becomes CPU time too.

  8. ASP Balancing

    The OS/400 versions since V4R3M0 offer the possibility to take influence on how the diskspace is used. Therefore the command STRASPBAL is used. First the only option was to spread data over all disks after adding new disks. Never versions can spread the data based on usage information collected with TRCASPBAL over the disk units to get a better balanced disk arm usage.


  1. Guidelines

    Resource Utillisation Guidelines

Resource Good Acceptabel Poor
CPU Pty < 20 ( 1 Processor ) < 70% 70 - 80% > 80%
CPU Pty < 20 ( 2 Processors ) < 76% 76 - 83% > 83%
CPU Pty < 20 ( 3 Processors ) < 79% 79 - 85% > 85%
CPU Pty < 20 ( 4 Processors ) < 81% 81 - 86% > 86%
Disk Arm < 40% 40 - 50 % > 50%
Disk IOP < 70% 70 - 80% > 80%
Local WS IOP < 25% 25 - 40% > 40%
Multifunction IOP < 35% 35 - 50% > 50 %
Communications IOP < 35% 35 - 50 % > 50 %
Remote WS Conntroller < 40 % 40 - 50 % > 50 %
LAN IOP < 35 % 35 - 50 % > 50 %
Remote Line < 30 % 30 - 40 % > 40 %

Physical Disk I/O per Transaction Guidelines

Type of Synchronous I/Oīs Number of I/Oīs
DB - reads 20 or less
DB - writes 13 or less
Total I/O 65 or less

Machine Pool Non-Database Faults

Good Acceptabel Poor
< 10 10 - 15 > 15

Others :

The number of CPU seconds per transaction should be less than 0.25.
Disk usage should not excess 80 %.
Try to keep your system within in the guidelines.

  • What is the AS/400 cappable to do ?

An overview of what the system can do can be foundin th book Capabilities finden. Its not allways easy to use this information for your special apllication but allways woth a look.

  • Synchronous and Asynchronous I/Os

The AS/400 is allways reading pages of 4Kb into main storage. If in one of this pages are more than one record from your file, this records are being read asynchronous. If you do an indexed read normally there is a new page needed for every record, if the index insnīt in main storage there must be two reads. So this reads are synchronous. If record are written synchronous or asynchronous belongs on how the file is opened or created. Synchronous I/Os mean a direct read from disk ( maybe cached from the disk iop )so you have to wait for the disk to respond. Asynchronous I/Os are moves from main storage and are not relevant for performance

  • What can be measured and how ?

Classic interactive workload can be measured be the performance monitor. For batch performance you wonīt get that good results with this tool. A good overview of CPU usage can be found in the accounting journal. Here you can find first candidates to optimize. For Client/Server Workload you should use Performance Explorer.

  • What is response time ?

The responde time is divided in Input-Line-Time, Host-Response-Time und Output-Line-Time. The input and output line time are network related and shouldnīt be a problem. Maybe if your IOP is to slow or there are filetransfers on your communication line. The Host-Response-Time is divided in more parts.

Ineligible-Time : The time a job needs to get all needed resources an an activity level.

CPU-Time : The time the programm really needs on the CPU. CPU usage is controlled by run priority.

Waiting for CPU : The time the job waits to get CPU slices.

Disk-I/O : The time needed for disk operations.

Waiting for Disk I/O : The time until disk I/Os are ready. Disk I/Os are not controlled by priority.

Waiting in Activity Level: I.E. waiting for File open or close.

Exceptional Wait Time : I.E. Record locks or accesss path maintenance.

  • Checking the guidelines using OS/400 commands

WRKSYSSTS : Collect dato for an intervall of 5 minutes. Look if the page faults are within the guidelines. You can see how full your disks are in this display too. Look if there are Wait to Ineligible or Aktiv to ineligible transitions. The value should be less than 0,2.

WRKDSKSTS : Collect dae for 5 minutes too. Look at the number and the usage of disk arms. The usage shouldnīt differ too much over all disk arms and should be into the guidelines.

WRKACTJOB : This is another one to collect data over 5 minutes. The output can be sorted using F16. By sorting for jobtype you can add the interactive workload.

  • The Performance Monitor

For deeper analisys you need the performance monitor. The performance monitor consists of two parts. Commands to cellect the performance data and command to analize the collected data. Collecting the data is allways possible, to get the reports you need the licensed programm Performance Tools. If you have more than one machine you can transfer the data you collected one one machine to the other to analize them. At release V4R3 and higher you can collect nd view the data using Operations Navigator, but it is not as pecise as with the performance tools. Another option is to look at the collected data using Query or your own programms. A brief description of the files is in the Book WORK-MANAGEMENT.

  • Starting the Performance Monitor

To start the performance monitor use the command STRPRMON. Set the time interval to 5 mminutes. For complex reports you need TRACE data. Set the parameter Trace Type to *ALL. Setting Trace type to *ALL will collect and store a lot more data. Run the performance monitor under heavy workload to find your problems. Collecting over 2 hours should be a good time.

  • The Performance Advisor

For the Advisor and the following reports you need the Performance tools manager program.
The performance Advisor is the simplest report. The advisor checks if everythig is within the guidelines and gives hints what to do. The Advisor give no hints regarding applications and only gives hints for interactive jobs. You canīt do too much wrong by following the advisor but often it is possible to optimize a few programs instead of buying new hardware.






   © 2005 by Eckhard Gosch •