TUNE Configuration Syntax

This Configuration is used on HPE NONSTOP only

The TUNE Configuration is used for setting up the 'Dynamic Node Balancing' feature. This configuration can be altered with any changes taking effect immediately after it is restarted. The configuration options permit:

  • The exclusion of particular objects and process names.

  • The setting of maximum priorities for objects and users.

  • The restriction of users and objects to particular CPUs.

  • The exclusion of any user from being load balanced.

  • The exclusion of disks from being selected as swap volume.

  • Specification of minimum and maximum system parameters for a CPU to be eligible to be chosen for a new process.  These parameters include; minimum free memory pages, minimum PCBs, minimum TLEs, maximum swaps and maximum queue length.

For further details see Dynamic Load Balancing for HPE NonStop.

If the configuration defines two lines with the same keyword, the second line will override the first. In the example below, the minimum number of TLEs needed for CPU 3 to be selected for a new process startup is 120. For other CPUs, the minimum number of TLEs is 100.

MINTLES (*, 100)
MINTLES (3, 120)

A CPU whose minimum falls below the setting can still be selected for new process startups if the values of ALL CPUs fall below the minimum listed in the configuration. This applies to MINPCBs, MINTLEs and MINPAGEs.
SUBSYS TUNE

[EXCLUDE OBJECT ({<object name>, ...})]
[EXCLUDE PROCESS ({<process name>, ...})]
[EXCLUDE SWAPVOL ({<vol name>, ...})]
[EXCLUDE CPU (<cpu>, <cpu>, ...)]
[IGNORE HI-PCB (<yes> | <no>)]
[INCLUDE PROCESS ({<process name>, ...})]
[MINLINKMON ({<cpu>|*}, <num-available-linkmon-opens>)]
[MINPAGES ({<cpu>|*}, <min-free-pages>)]
[MINPCBS ({<cpu>|*}, <min-free-pcbs>)]
[MINTLES ({<cpu>|*}, <min-free-tles>)]
[MAXSWAPS ({<cpu>|*}, <max-swaps>)]
[MAXQLEN ({<cpu>|*}, <max-qlen>)]
[MAXOPENS (<max-write-open-files>)]
[MAXPRI DEFAULT (<priority>)]
[MAXPRI OBJECT ({ <obj name>, <priority>)]
[MAXPRI PROCESS (<process-name>, <priority>)]
[MAXPRI USER ({ <Username>, <priority>)]
[MAXPRI ANCESTOR (<process_name>, <priority>)]
[EXCLCPU ANCESTOR (<process_name>, <cpu>, [<cpu>, ...])
[EXCLCPU ANCOBJ (<ancestor_object>, <cpu>, [,<cpu>, ...])]
[EXCLCPU OBJECT ({ <obj name>, <cpu-list>)]
[EXCLCPU PROCESS {<process_name>, <cpu>,[ <cpu>, ...])
[EXCLCPU USER ({[<grp>*<grp><usr>], <cpu-list>)]

Syntax Elements

EXCLUDE OBJECT

Permits you to specify object names that should not be affected by automated tuning. If you specify just the object name (without the disk and Subvolume) it applies to all objects of that name on any disk or Subvolume. Some processes are run in specific CPUs for valid reasons. Altering the CPU requested may interfere with the program. An example of this is PEEK. This program provides memory and CPU performance information for the CPU in which it is run. It should be placed in the exclude list.

EXCLUDE PROCESS

Specifies names of processes that should not be affected by automated tuning. Some processes may be run in particular CPUs for valid reasons, whereas other processes with the same object may be run anywhere. In order to satisfy requirements for exclusion of some copies of an object program, the process name exclusion is provided. Processes with names specified in the exclude process list are run in the requested CPUs. A wildcard character can be used to exclude a number of similarly named objects.

INCLUDE PROCESS

Specifies names of processes that should be affected by automated tuning. Some processes may be run in particular CPUs for valid reasons, whereas other processes with the same object may be run anywhere. As using wildcard characters in EXCLUDE PROCESS may exclude processes which should be tuned, the INCLUDE PROCESS option is also provided. Processes with names specified in the include process list are subject to all aspects of tuning. A wildcard character can be used to include a number of similarly named objects.

EXCLUDE SWAPVOL

Specifies volumes that should not be eligible for use as swap volumes by load balance. You may not want certain volumes, such as often-removed or unmirrored disks, to be used as swap volumes. Specify them in the exclude SWAPVOL clause so that the system will not start your processes with these swap volumes. Allocate segment calls for extended memory also have swap files. These are not allocated by the automated tuning system. For example, Pathway Terminal Control Processes should be configured from within your Pathway system by the SET TCP SWAP statement.

EXCLUDE CPU

Excludes CPUs from being selected by DLB. No processes will be started by DLB on the nominated CPUs.

IGNORE HI-PCB

This option allows the user to tune process creation using low PCB figures only when the value is set to Y or YES, or using both high and low PCB counters when the value is set to N or NO. The default value for this parameter is NO.

MINLINKMON

This statement applies to TS/MP version 2.0 and below, which had a limitation of 1024 Pathsend requesters in a CPU. The MINLINKMON entry is completed with the number of LINKMON opens that should remain available on a CPU at any time. A process should never be placed in a CPU where the LINKMON already has exhausted the maximum number of LINKMON opens for that CPU. The maximum number of LINKMON opens is calculated as:

1024 - <number-available-linkmon-opens>

For TS/MP version 2.1 and above, the use of this setting is not necessary. If not specified, no LINKMON checking is performed.

MINPAGES

Specifies the minimum number of free pages a CPU must have in order to be selected for a new process startup. A CPU may be selected regardless of this setting if all CPUs fall below this number.  (Default = 100)

MINPCBS

Specifies the minimum number of free PCBs a CPU must have in order to be selected for a new process startup. A CPU may be selected regardless of this setting if all CPUs fall below this number.

MINTLES

Specifies the minimum number of free TLEs a CPU must have in order to be selected for a new process startup. A CPU may be selected regardless of this setting if all CPUs fall below this number. (Default = 20)

MAXSWAPS

Specifies the maximum number of swaps a CPU can have in order to be selected for a new process startup. A CPU may be selected regardless of this setting if all CPUs have swaps greater than this number. (Default = 2)

MAXQLEN

Specifies the maximum queue length a CPU can have in order to be selected for a new process startup. A CPU may be selected regardless of this setting if all CPU queues are greater than this number. (Default = 2)

MAXOPENS

Specifies the maximum number of write-open files that can exist on a volume in order to be selected in order to access Swap volume. A disk may be selected regardless of this setting if all disks have swaps greater than this number.

MAXPRI ANCESTOR

Specifies the maximum priority all processes started by the process named in ancestor can run at. Any jobs run at a higher priority are reduced.

MAXPRI DEFAULT

Specifies the maximum priority a user is permitted to runs jobs in the system by default. Tuning first looks for a MAXPRI OBJECT setting, then a MAXPRI ANCESTOR and if none are found it will use this MAXPRI DEFAULT value.

MAXPRI OBJECT

Specifies the maximum priority for an object. An attempt to run a job using this object file at a higher priority than that specified will have the priority altered to this maximum. If you specify just the object name (without the disk and Subvolume) it applies to all objects of that name on any disk or Subvolume. This option is ideal for compiling. TAL, COBOL, C and so forth can be configured to run at low priority, ensuring that CPU-intensive compiles do not interfere with editing and production jobs.

MAXPRI PROCESS

Specifies the maximum priority for a process. An attempt to run the process at a higher priority other than that specified in this statement will have the priority altered to this maximum.

MAXPRI USER

Specifies the maximum priority a user is permitted to runs jobs in the system. Any jobs run at a higher priority are reduced. If your production system is run on the same machine as development, this parameter can be used to prevent development jobs impacting production. For example, development users can be constrained to execute jobs under priority 150 while production applications are configured to run above this.

In the following EXCLCPU statements, a list of CPUs is entered using a comma separated list, e.g. 1,2,3. All CPUs can be specified by adding individual names (comma separated) or by using an asterisk (*).

EXCLCPU ANCESTOR

This field is used to stop processes spawned by the ANCESTOR named here from running in a particular CPU(s).

EXCLCPU ANCOBJ

Used to specify an ancestor object name in order to prevent processes which are started from this object from being run in the specified CPUs.

EXCLCPU OBJECT

Prevents the specified objects from being started in particular CPUs. The process is started in one of the remaining CPUs. This is useful in directing CPU-intensive operations, such as compiling, to faster CPUs. If you specify just the object name (without the disk and Subvolume) it applies to all objects of that name on any disk or Subvolume. To enter a list of CPUs, such as CPU 1, 2 and 3, use the notation 1,2,3.

EXCLCPU PROCESS

This field is used to stop processes named here from running in a particular CPU(s).

EXCLCPU USER

Permits the exclusion of users from particular CPUs, therefore dividing resources. Production and development can share a machine by using separate parts of it. To enter a list of CPUs, such as CPU 1, 2 and 3, use the notation 1,2,3.

Example:

SUBSYS TUNE

EXCLUDE OBJECT (peek, pathtcp2, binserv, diver, pathmon, ncp)
EXCLUDE SWAPVOL ($DATA, $DATA1, $SYSTEM)
EXCLUDE PROCESS ($TCP3, $IMON, $DM0*)
INCLUDE PROCESS ($DM02, $DM03)
MINPCBS (*, 40)
MINTLES (*, 100)
MINPAGES (4, 400)
MAXQLEN (3,2)
MAXSWAPS (3, 1)
MAXPRI USER (devel.*, 120)
MAXPRI OBJECT (tal, 120, ddl, 170)
EXCLCPU USER (devel.*, 3, 4)
EXCLCPU OBJECT (tal, 3, 4)
Provide feedback on this article