of relatively lower delay cost.
y
Waiting Time
The waiting time is used to determine the delay cost of a job at a particular time. The waiting time of
a job which affects the cost is the time the job has been waiting on the TDQ for execution.
y
Delay Cost Curves
The end-user interface for setting job priorities has not changed. However, internally the priority of a
job is mapped to a set of delay cost curves (see "Priority Mapping to Delay Cost Curves" below).
The delay cost curve is used to determine a job's delay cost based on how long it has been waiting on
the TDQ. This delay cost is then used to dynamically adjust the job's priority, and as a result, possibly
the position of the job in the TDQ.
On a lightly loaded system, the jobs' cost will basically stay at their initial point. The jobs will not
climb the curve. As the workload is increased, the jobs will start to climb their curves, but will have
little, if any, effect on dispatching. When the workload gets around 80-90% CPU utilization, some of
the jobs on lower slope curves (lower priority), begin to overtake jobs on higher slope curves which
have only been on the dispatcher for a short time. This is when the Dynamic Priority Scheduler
begins to benefit as it prevents starvation of the lower priority jobs. When the CPU utilization is at a
point of saturation, the lower priority jobs are climbing quite a way up the curve and interacting with
other curves all the time. This is when the Dynamic Priority Scheduler works the best.
Note that when a job begins to execute, its cost is constant at the value it had when it began
executing. This allows other jobs on the same curve to eventually catch-up and get a slice of the
CPU. Once the job has executed, it "slides" down the curve it is on, to the start of the curve.
Priority Mapping to Delay Cost Curves
The mapping scheme divides the 99 'user' job priorities into 2 categories:
y
User priorities 0-9
This range of priorities is meant for critical jobs like system jobs. Jobs in this range will NOT be
overtaken by user jobs of lower priorities. NOTE: You should generally not assign long-running,
resource intensive jobs within this range of priorities.
y
User priorities 10-99
This range of priorities is meant for jobs that will execute in the system with dynamic priorities. In
other words, the dispatching priorities of jobs in this range will change depending on waiting time in
the TDQ if the QDYNPTYSCD system value is set to '1'.
y
The priorities in this range are divided into groups:
y
Priority 10-16
y
Priority 17-22
y
Priority 23-35
y
Priority 36-46
IBM i 6.1 Performance Capabilities Reference - January/April/October 2008
©
Copyright IBM Corp. 2008
Chapter 19 - Misc Perf Information
304