This site contains some useful information about AS/400 work management
and performance
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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.
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.
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.