 |
OpenVMS System Manager's Manual
14.6.3.2 Displaying Characteristics Defined on a System
To see the characteristics defined on a system, enter SHOW
QUEUE/CHARACTERISTICS.
Example
$ SHOW QUEUE/CHARACTERISTICS
Characteristic name Number
------------------- ------
EAST 1
WEST 2
NORTH 3
SOUTH 4
|
14.6.3.3 Assigning Characteristics to a Queue
No characteristics are assigned to a queue by default. To assign
characteristics to a queue, include the /CHARACTERISTICS qualifier with
INITIALIZE/QUEUE, START/QUEUE, or SET QUEUE.
Example
$ SET QUEUE/CHARACTERISTICS=(EAST) LN03_1
|
14.6.3.4 Displaying Characteristics Assigned to a Queue
To determine the characteristics defined for a queue, enter SHOW
QUEUE/FULL.
Example
$ SHOW QUEUE/FULL LN03_1
Printer queue LN03_1, idle, on HERA::TTA3, mounted form DEFAULT
<Printer queue on node HERA for an LN03 printer>
/BASE_PRIORITY=4 /CHAR=(1) /DEFAULT=(FLAG=ONE,FORM=LN03$PORTRAIT
(stock=DEFAULT)) /LIBRARY=LN03LIBRARY Lowercase
/OWNER=[SYSTEM] /PROCESSOR=LATSYM /PROTECTION=(S:M,O:D,G:R,W:R)
/SEPARATE=(RESET=(ANSI$RESET))
|
14.6.3.5 Canceling Characteristics Assigned to a Queue
To cancel characteristics assigned to a queue, specify the
/NOCHARACTERISTICS qualifier with INITIALIZE/QUEUE, START/QUEUE, or SET
QUEUE.
14.6.3.6 Deleting Characteristics
To delete a characteristic definition, enter DELETE/CHARACTERISTIC. You
must specify the characteristic-name with
DELETE/CHARACTERISTIC.
If you know the number assigned to the characteristic but do not know
the name, enter SHOW QUEUE/CHARACTERISTICS to display the names and
numbers assigned to characteristics on the system.
If the system displays the following messages, a queue or job refers to
the characteristic:
%DELETE-E-NOTDELETED, error deleting characteristic
-JBC-E-REFERENCED, existing references prevent deletion
|
You must remove all references to the characteristic before you can
delete the characteristic. For information about removing references to
a characteristic, see Section 14.8.5.
14.6.4 Specifying Batch Processing Options
You can use queue options to control batch job performance and the use
of system resources by processes executing batch jobs.
Use the following qualifiers with INITIALIZE/QUEUE, START/QUEUE, or SET
QUEUE to set these queue options:
Qualifier |
Description |
/JOB_LIMIT=
n
|
Specifies the number of jobs that can execute concurrently in the queue.
|
/[NO]DISABLE_SWAPPING
|
Specifies whether the processes running jobs on the queue can be
swapped in and out of memory.
|
/CPUDEFAULT=
time
|
Specifies the default CPU time limit for all jobs in the queue. The
time cannot exceed the time limit set with the /CPUMAXIMUM qualifier.
|
/CPUMAXIMUM=
time
|
Specifies the maximum CPU time limit for all jobs in the queue.
|
Although the following qualifiers are not specific to batch queues,
they are commonly used to control batch job performance and the use of
system resources by batch processes:
Option |
Description |
/BASE_PRIORITY=
n
|
Specifies the base process priority at which jobs are initiated from a
batch queue.
|
/WSDEFAULT=
n
|
Specifies the default working set size for jobs executed in a batch
queue. (For output queues, specifies the default working set size for
symbiont processes.)
|
/WSEXTENT=
n
|
Specifies the working set extent for jobs executed in a batch queue.
(For output queues, specifies the working set extent for symbiont
processes.)
|
/WSQUOTA=
n
|
Specifies the working set quota for jobs executed in a batch queue.
(For output queues, specifies the working set quota for symbiont
processes.)
|
For more information about these limits, quotas, and priorities, refer
to the following manuals:
- The INITIALIZE/QUEUE command in the OpenVMS DCL Dictionary
- The OpenVMS Performance Management
By default, a process running a batch job uses values taken from the
UAF record of the user submitting the job or from system parameter
settings. If you specify values for any of these options, processes for
jobs executed in the queue will use the values you set unless the user
specifies values when the job is submitted. (A user can specify values
for CPU time and for the working set options default, quota, and
extent.)
A user-specified value cannot exceed the value you set for the queue.
If you did not specify a value, the user-specified value cannot exceed
the value specified in the associated UAF limit or system parameter.
The following sections provide guidelines for choosing values for these
options:
14.6.4.1 Base Process Priority
Choose a value based on how quickly you will allow batch jobs to
progress. If you choose a value equal to the system parameter value
DEFPRI (typically 4), jobs in this queue will progress at the same rate
as typical interactive jobs. This choice might be appropriate for
systems that have an abundance of available CPU time.
If you choose a value less than DEFPRI, jobs in this queue will
potentially progress more slowly than the typical interactive job. CPU
time will be allocated to jobs in this queue only after servicing jobs
of DEFPRI priority.
If a queue is defined for a very special purpose---for example,
high-priority jobs---a value greater than DEFPRI (for example, 5) might
be appropriate. However, this choice can have a significant negative
effect on the performance of other users and batch jobs.
14.6.4.2 Job Limit
Keep this value low when using a base process priority of DEFPRI or
greater, because each batch job can affect the performance of
interactive jobs.
14.6.4.3 Working Set Default, Quota, and Extent
If you do not specify values for these options, a job uses the value
specified in its owner's user authorization file (UAF) record.
Process Limit |
Description |
Working set default
|
The value to which the working set returns at the exit of each image.
The value should be relatively small and is usually best left at the
value specified in the user's UAF record.
|
Working set quota
|
The value that approximates the amount of physical memory used by each
batch job in the queue in a
memory-constrained system.
|
Working set extent
|
The value that approximates the amount of physical memory in a
memory-rich system.
You should set this to a high value. The working set extent value
is an upper limit for the size of the working set; the working set
cannot be expanded beyond this value even if more memory is required by
the job. If you set this value too low, a job might page fault heavily
even if the system has plenty of memory available. To be safe, choose a
working set extent value equal to
the system parameter value of WSMAX, which specifies the maximum
working set size possible for your system.
|
In general, the working set quota and extent values specified in the
UAF record for each user are sufficient. However, you can specify more
generous or stringent values for a queue, depending on the purpose of
the queue. For example, you can encourage users to submit large jobs
(such as compiling and linking large programs) as batch jobs to reserve
interactive use of the system for jobs that do not require extensive
resources, as follows:
- Set a large working set size for batch jobs by specifying larger
WSQUOTA and WSEXTENT values when you create the batch queue.
- Restrict the working set size of interactive jobs by providing
smaller WSQUOTA and WSEXTENT values in users' UAF records.
14.6.4.4 CPU Default and Maximum
You can restrict and expand the amount of time a job is allowed in the
CPU by setting CPU limit values.
Do not set CPU time limit values too low. When a job's CPU time limit
is exceeded, the job is terminated with an error status. If working set
values (explained in Section 14.6.4.3) are set too low, the system might
use memory less efficiently but the jobs can still complete normally.
However, if CPU time limit values are set too low, the system might
terminate jobs that are making legitimate and authorized use of the CPU.
For example, you might use a CPU time limit on a batch queue devoted to
execution of newly coded software that could unexpectedly enter a CPU
loop. The CPU time limit would terminate infinitely looping jobs so
they do not waste the CPU resource. However, you must be careful to
choose a sufficiently high time limit so normally executing jobs do not
terminate prematurely.
Another way to control allocation of the CPU resource is to create a
special-purpose batch queue that shifts execution of its jobs to a less
busy time of day when CPU time is more available.
14.6.4.5 Swapping
Typically, swapping is enabled on batch queues. However, for a
special-purpose, high-priority queue, you might disable swapping. This
provides a favorable status to jobs in this queue by removing them from
consideration when memory must be reclaimed from processes (through the
operating system's swapping and trimming mechanism).
For more information, refer to the OpenVMS Performance Management.
14.6.4.6 Options for Memory-Constrained Systems
On memory-constrained systems, total the pages required for the batch
working sets on all batch queues. Also make sure that enough fluid
memory remains for interactive jobs.
Fluid memory can be reassigned from one process to another through
swapping and paging. (You can calculate fluid memory as the space that
remains when you subtract the number of pages permanently allocated to
the operating system from the total memory. To obtain these values,
enter SHOW MEMORY.)
14.6.4.7 Optimizing Batch Queues for the Sort/Merge Utility
You can improve the efficiency of the OpenVMS Sort/Merge utility
(SORT/MERGE) by designating one batch queue for sorting jobs and giving
this queue a very large working set quota.
You can also set process quotas for greatest SORT efficiency. The
values recommended here are based solely on SORT considerations; you
should integrate other system considerations with these to determine
appropriate values.
- Working set extent per process (WSEXTENT system parameter)
For
maximum sorting efficiency, use the /WSEXTENT qualifier with
INITIALIZE/QUEUE, START/QUEUE, or SET QUEUE to set this value on the
queue to the largest value any sorting job would ever need. Generally,
the smaller the working set, the slower the sort. If you want to
sort large files in batch mode, you need to set the WSEXTENT system
parameter to a large value to accommodate the sort.
- Virtual page count per process (VIRTUALPAGECNT system parameter)
For maximum sorting efficiency, set this system parameter to at
least 1000 pages (on VAX systems) or pagelets (on Alpha systems) more
than the maximum working set extent. Although SORT limits the size of
the sort data structure to the process's working set extent, if work
files are required, SORT can use the extra memory for I/O buffers. If
this parameter is too low relative to the working set extent, SORT
might be unable to create buffers for the work files when the files
cannot be sorted in memory.
14.6.5 Specifying Job Scheduling Options
The queue manager uses the following criteria to determine the
scheduling order for batch and print jobs that are eligible for
processing:
- Job scheduling priority
The queue manager checks the job's
scheduling priority. The job with the highest scheduling priority value
is processed first. The job scheduling priority is different than the
base process priority or current process priority. The user can specify
job scheduling priority with the /PRIORITY qualifier of the PRINT or
SUBMIT command.
- Size (optional, and applies only to output jobs)
By default,
the job size of an output job is checked. Among jobs of identical
scheduling priority, the smallest job is processed first. The job
size is not checked if the queue has been created, started, or modified
to use the /SCHEDULE=NOSIZE option.
- Submission time
If the jobs' scheduling priorities are
identical, the job that was submitted first is processed first.
How to Perform This Task
To specify job scheduling options, follow these steps:
- Decide if you want the order of print jobs to be based on size.
- Decide if you want to set a block limit on jobs to be printed.
Commands for Job Scheduling Options
Use the following commands to specify job scheduling options:
Command |
Description |
INITIALIZE/QUEUE/SCHEDULE=[NO]SIZE
START/QUEUE/SCHEDULE=[NO]SIZE
SET QUEUE/SCHEDULE=[NO]SIZE
|
Specifies whether pending jobs in an output execution queue are
scheduled for printing based on the size of the job. (Shorter jobs
print before longer ones.)
|
INITIALIZE/QUEUE/[NO]BLOCK_LIMIT=([lowlim,]uplim)
START/QUEUE/[NO]BLOCK_LIMIT=([lowlim,]uplim)
SET QUEUE/[NO]BLOCK_LIMIT=([lowlim,]uplim)
|
Limits the size of print jobs that can be processed on an output
execution queue.
|
PRINT/PRIORITY=n
SUBMIT/PRIORITY=n
SET ENTRY/PRIORITY=n
|
Specifies the job scheduling priority of the print job. The value of
n can be from 0 through 255, where 0 is the lowest priority
and 255 is the highest.
|
14.6.5.1 Setting Job Scheduling Priorities and Limits
The sections explain how to set job printing priorities and sizes.
How to Prioritize Jobs by Size
To prioritize jobs based on their sizes, use the /SCHEDULE=SIZE
qualifier with INITIALIZE/QUEUE, START/QUEUE, or SET QUEUE. (The
/SCHEDULE=NOSIZE qualifier prints jobs in the order they were
submitted, regardless of size.)
In the following example, /SCHEDULE=SIZE (the default), causes short
jobs to print before longer ones on the print queue LPA0_PRINT:
$ INITIALIZE/QUEUE/SCHEDULE=SIZE LPA0_PRINT
|
If you enter this command while pending jobs are in any queue, its
effect on future jobs is unpredictable.
How to Limit the Size of Jobs
To limit the size of print jobs, use the /BLOCK_LIMIT qualifier with
INITIALIZE/QUEUE, START/QUEUE, or SET QUEUE. By default, printer and
terminal queues are created with no block limit, so jobs of any size
will be printed. You can specify only an upper limit or both upper and
lower limits.
In the following example, LPB0_PRINT has a block size limit of 50,
indicating that this queue is reserved for jobs smaller than 51 blocks.
$ INITIALIZE/QUEUE/BLOCK_LIMIT=50 LPB0_PRINT
|
You might also want to limit the size of jobs during certain hours of
the day. You can submit a batch job that runs a command procedure to
set a maximum block limit of 500 blocks for a queue at 8:00 a.m. The
command procedure might resubmit itself and remove the block limit
after 5:00 p.m. each day. This lets users print jobs of any size after
normal work hours, when the printing work load is lighter. Users can
specify the /AFTER qualifier with the PRINT command to specify that a
job is to be printed after a specific time.
14.6.5.2 Changing the Scheduling Priority of a Job
If a batch or print job cannot be processed, it is placed in a pending
state and is not processed until the cause of the pending state is
resolved. For more information, see Section 14.8.2.
To change the scheduling priority of a job, use the /PRIORITY qualifier
with SET ENTRY in the following format:
SET ENTRY/PRIORITY=n entry-number
|
The following example changes the scheduling priority of a job to 50:
$ SET ENTRY/PRIORITY=50 1131
|
Do not confuse the job scheduling priority with the base process
priority on a queue. The job scheduling priority value must be in a
range of 0 through 255, where 0 is the lowest priority and 255 is the
highest. The default value for /PRIORITY, which refers to the job
scheduling priority, is the value of the system parameter DEFQUEPRI
(usually set at 100).
14.6.6 Using Banner Pages
Banner pages are specially formatted pages that you
can set up for queues, to help identify and separate output jobs when
they exit a printer. Banner pages also help identify and separate files
within jobs.
Two types of banner pages are:
- Job pages are banner pages that identify and separate jobs.
- File pages are banner pages that identify and separate
files within a job.
Most sites use only a subset of the available banner pages at any given
time. The following table describes the types of banner pages you can
use:
Type |
Description |
For More Information |
Job Pages |
Flag page
|
A single page printed before each job.
|
Figure 14-11
|
Burst page
|
Two flag pages, divided by a separation (burst) bar, printed before
each job.
|
Figure 14-11
|
Trailer page
|
A page printed after each job.
|
Figure 14-13
|
File Pages |
Flag page
|
A single page printed before each file in a job.
|
Figure 14-12
|
Burst page
|
Two flag pages, divided by a separation (burst) bar, printed before
each file in a job.
|
Figure 14-12
|
Trailer page
|
A page printed after each file in a job.
|
Figure 14-13
|
Note
If you do not need to burst pages of a printer's output---for example,
if your printer uses cut sheet paper---avoid the burst page option.
Flag pages, or flag and trailer pages, are usually sufficient for
identifying the end of a job.
|
Table 14-2 describes the information found on job flag pages, file
flag pages, job trailer pages, and file trailer pages.
Table 14-2 Contents of Job and File Pages
Item |
Description |
Header bar
|
A segmented bar composed of:
For a job flag page:
A single-segment bar composed of:
- Rows of a repeated numeral indicating the sequence of the job in
the queue.
- An embedded text string specified by defining the PSM$ANNOUNCE
system logical name. The length of the string is limited to one form
width. If PSM$ANNOUNCE is not defined, the default text string is
"Compaq Computer Corporation" followed by the system version number.
(Use "Compaq" for shorter form width.)
For a file flag page:
A three-segment bar composed of:
- A central segment identical to the job flag page.
- Flanking segments with rows of a repeated character indicating the
sequence of the file in the job.
For a job trailer page:
A three-segment bar composed of:
- A central segment with "END OF JOB" banner.
- Flanking segments with job sequence numeral.
For a file trailer page:
A five-segment bar composed of the following elements:
- Central segment with "END OF FILE" banner.
- Inner flanking segments with job sequence numeral.
- Outer flanking segments with file sequence character.
|
Note
|
A user-specified string of up to 255 characters using the PRINT/NOTE
command.
|
Identification banner
|
Includes the user name of the process submitting the job, the job name,
and the job number.
|
Qualifier phrase (file trailer page only)
|
Indicates the print, queue, and form qualifiers active when the job was
submitted; nonactive qualifiers (except /NORECORD_BLOCKING and /NOFEED)
are not included.
|
File sentence (file flag and file trailer pages only)
|
Indicates the following information:
- Full file specification, including device and directory, file name,
type, version, and revision date and time
- File size in blocks
- File organization
- File owner's UIC
- File record characteristics: record type, carriage control, and
size of longest record
|
Receipt box (job trailer page only)
|
Contains the following signoff fields: Received:, Date:, and Operator:.
|
Job sentence
|
Indicates the following information:
- Job name and number
- Name of queue to which job was submitted
- Submission date and time
- Process user name, UIC, and account
- Job scheduling priority
- Print device name
- Job start time
- Execution queue name
|
Footer bar
|
A segmented bar composed of:
For a job flag page:
Identical to the job flag header bar except the definition of the
system logical name (PSM$ANNOUNCE) is not used as the embedded string.
The default text is always used as the embedded string.
For a file flag page:
Identical to the file flag header bar except that the embedded text
string is "Compaq Computer Corporation" followed by the operating
system version number.
For a job trailer page:
Identical to the job flag header bar except the definition of the
system logical name (PSM$ANNOUNCE) is not used as the embedded string.
For a file trailer page:
Identical to the file flag header bar except that the embedded text
string is "Compaq Computer Corporation" followed by the operating
system version number.
|
Ruler (file trailer and job trailer pages only)
|
A sequence of numbers counting to the end of the form.
|
|