IBM LoadLeveler for AIX 5L: Using and Administering
Each job submitted to LoadLeveler is assigned a system priority number,
based on the evaluation of the SYSPRIO keyword expression in the
configuration file of the central manager. The LoadLeveler system
priority number is assigned when the central manager adds the new job to the
queue of jobs eligible for dispatch. Once assigned, the system priority
number for a job is never changed (unless jobs for a user swap their
SYSPRIO, or NEGOTIATOR_RECALCULATE_SYSPRIO_INTERVAL is
not zero). Jobs assigned higher SYSPRIO numbers are
considered for dispatch before jobs with lower numbers. See How does a job's priority affect dispatching order? for more information on job priorities.
You can use the following LoadLeveler variables to define the
SYSPRIO expression:
- ClassSysprio
- The priority for the class of the job step, defined in the class stanza in
the administration file. The default is 0.
- GroupQueuedJobs
- The number of job steps associated with a LoadLeveler group which
are either running or queued. (That is, job steps which are in one of
these states: Checkpointing, Preempted, Preempt Pending, Resume Pending,
Running, Starting, Pending, or Idle.)
- GroupRunningJobs
- The number of job steps for the LoadLeveler group which are in one
of these states: Checkpointing, Preempted, Preempt Pending, Resume
Pending, Running, Starting, or Pending.
- GroupSysprio
- The priority for the group of the job step, defined in the group stanza in
the administration file. The default is 0.
- GroupTotalJobs
- The total number of job steps associated with this LoadLeveler
group. Total job steps are all job steps reported by the llq
command.
- QDate
- The difference in the UNIX date when the job step enters the queue and the
UNIX date when the negotiator starts up.
- UserPrio
- The user-defined priority of the job step, specified in the job command
file with the user_priority keyword. The default is
50.
- UserQueuedJobs
- The number of job steps either running or queued for the
user. (That is, job steps which are in one of these states:
Checkpointing, Preempted, Preempt Pending, Resume Pending, Running, Starting,
Pending, or Idle.)
- UserRunningJobs
- The number of job step steps for the user which are in one of these
states: Checkpointing, Preempted, Preempt Pending, Resume Pending,
Running, Starting, or Pending.
- UserSysprio
- The priority of the user who submitted the job step, defined in the user
stanza in the administration file. The default is 0.
- UserTotalJobs
- The total number of job steps associated with this user. Total job
steps are all job steps reported by the llq command.
- The SYSPRIO keyword is valid only on the machine where the
central manager is running. Using this keyword in a local configuration
file has no effect.
- It is recommended that you do not use UserPrio in the
SYSPRIO expression, since user jobs are already ordered by
UserPrio.
- You can use the UserRunningJobs, GroupRunningJobs,
UserQueuedJobs, GroupQueuedJobs,
UserQueuedJobs, GroupQueuedJobs
UserTotalJobs, and GroupTotalJobs parameters to
prioritize the queue based on current usage. You should also set
NEGOTIATOR_RECALCULATE_SYSPRIO_INTERVAL so that the priorities are
adjusted according to current usage rather than usage only at submission
time.
This example creates a FIFO job queue
based on submission time:
SYSPRIO : 0 - (QDate)
This example accounts for Class, User, and Group system
priorities:
SYSPRIO : (ClassSysprio * 100) + (UserSysprio * 10) + (GroupSysprio * 1) - (QDate)
This example orders the queue based on the number of jobs
a user is currently running. The user who has the fewest jobs running
is first in the queue. You should set
NEGOTIATOR_RECALCULATE_SYSPRIO_INTERVAL in conjunction with this
SYSPRIO expression.
SYSPRIO : 0 - UserRunningJobs
[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]