pbs_server_attributes(7B)

๐Ÿ“ฆ version 23.06.06-unstable-2026-04, in nixos 26.05, nixpkgs unstable

๐ŸŽ€ pbs_server_attributes ๐ŸŽ€

okay bestie, this is the 7B manual page for pbs_server_attributes, and it's giving server-attribute bible. every single attribute is getting its moment, no skips, no cap. ๐Ÿ’…


๐ŸŒธ NAME ๐ŸŒธ

pbs_server_attributes โ€” PBS server attributes


โœจ DESCRIPTION โœจ

a PBS server has the following attributes. we're going through all of them, and yes, your fave is in here somewhere. ๐Ÿซถ

๐Ÿฆ‹ acl_host_enable ๐Ÿฆ‹

this one is the vibe check for whether the server actually obeys the host access control list in the acl_hosts server attribute. iconic access-control energy. โœจ

  • Readable by all; settable by Manager.
  • Format: Boolean
  • Python type: bool
  • Behavior:
    • True โ€” the server limits host access according to the access control list.
    • False โ€” all hosts are allowed access.
  • Default: False

๐Ÿงš acl_host_moms_enable ๐Ÿงš

okay so this one is about MoMs contacting the server. it says whether all MoMs are automatically allowed to contact the server with the same privilege as hosts listed in the acl_hosts server attribute. yes ma'am. ๐Ÿ’–

  • Readable by all; settable by Manager.
  • Format: Boolean
  • Python type: bool
  • Behavior:
    • True โ€” all MoMs are automatically allowed to contact the server with the same privilege as hosts listed in the acl_hosts server attribute.
    • False โ€” MoMs are not automatically allowed to contact the server with the same privilege as hosts listed in the acl_hosts server attribute.
  • Default: False

๐Ÿ‘‘ acl_hosts ๐Ÿ‘‘

list of hosts from which services can be requested of this server. Requests from the server host are always honored whether or not that host is in the list. This list contains the fully qualified domain names of the hosts. List is evaluated left-to-right; first match in list is used. periodt. ๐ŸŽ€

  • Readable by all; settable by Manager.
  • Format: String
  • Syntax: "[+|-]<hostname>.<domain>[, ...]"
  • Python type: pbs.acl
  • Default: No default (all hosts are allowed access)

๐ŸŒˆ acl_resv_group_enable ๐ŸŒˆ

whether the server obeys the group reservation access control list in the acl_resv_groups server attribute. it's giving reservation gatekeeping. ๐Ÿฆ‹

  • Readable by all; settable by Manager.
  • Format: Boolean
  • Python type: bool
  • Behavior:
    • True โ€” the server limits group access according to the access control list.
    • False โ€” all groups are allowed access.
  • Default: False

๐Ÿ’– acl_resv_groups ๐Ÿ’–

list of groups allowed or denied permission to create reservations in this PBS complex. The groups in the list are groups on the server host, not submission hosts. List is evaluated left-to-right; first match in list is used. ๐Ÿ’…

  • Readable by all; settable by Manager.
  • Format: String
  • Syntax: "[+|-]<group name>[, ...]"
  • Python type: pbs.acl
  • Default: No default

๐Ÿฆ‹ acl_resv_host_enable ๐Ÿฆ‹

same energy but for the host reservation access control list in the acl_resv_hosts server attribute. ๐ŸŽ€

  • Readable by all; settable by Manager.
  • Format: Boolean
  • Python type: bool
  • Behavior:
    • True โ€” the server limits host access according to the access control list.
    • False โ€” all hosts are allowed access.
  • Default: False

โœจ acl_resv_hosts โœจ

list of hosts from which reservations can be created in this PBS complex. This list is made up of the fully-qualified domain names of the hosts. List is evaluated left-to-right; first match in list is used. ๐Ÿ’ซ

  • Readable by all; settable by Manager.
  • Format: String
  • Syntax: "[+|-]<hostname>.<domain>[, ...]"
  • Python type: pbs.acl
  • Default: No default

๐ŸŽ€ acl_resv_user_enable ๐ŸŽ€

whether the server limits which users are allowed to create reservations, according to the access control list in the acl_resv_users server attribute. reservation-permission tea โ˜•

  • Readable by all; settable by Manager.
  • Format: Boolean
  • Python type: bool
  • Behavior:
    • True โ€” the server limits user reservation creation according to the access control list.
    • False โ€” all users can create reservations.
  • Default: False

๐Ÿ’… acl_resv_users ๐Ÿ’…

list of users allowed or denied permission to create reservations in this PBS complex. List is evaluated left-to-right; first match in list is used. ๐Ÿซถ

  • Readable by all; settable by Manager.
  • Format: String
  • Syntax: "[+|-]<username>[@<hostname>][, ...]"
  • Python type: pbs.acl
  • Default: No default

๐Ÿ”ฅ acl_roots ๐Ÿ”ฅ

list of users with root privilege who may run jobs at this server. If the owner of a job is root or Administrator, the owner must be listed in this access control list or the job is rejected. More specific entries should be listed before more general, because the list is read left-to-right, and the first match determines access. highkey important. ๐Ÿ‘‘

  • Readable by all; can be set or altered by root only, and only at the server host.
  • Format: String
  • Syntax: "[+|-]<username>[@<hostname>][, ...]"
  • Python type: pbs.acl
  • Default: No default; no root jobs allowed

๐ŸŒˆ acl_user_enable ๐ŸŒˆ

whether the server limits which users are allowed to run commands at the server, according to the control list in the acl_users server attribute. command-access vibe check. โœจ

  • Readable by all; settable by Manager.
  • Format: Boolean
  • Python type: bool
  • Behavior:
    • True โ€” the server limits user access according to the access control list.
    • False โ€” all users have access.
  • Default: False

๐Ÿซถ acl_users ๐Ÿซถ

list of users allowed or denied permission to run commands at this server. List is evaluated left-to-right; first match in list is used. ๐Ÿ’–

  • Readable by all; settable by Manager.
  • Format: String
  • Syntax: "[+|-]<username>[@<hostname>][, ...]"
  • Python type: pbs.acl
  • Default: No default

๐Ÿ“ backfill_depth ๐Ÿ“

Modifies backfilling behavior. Sets the number of jobs that are to be backfilled around. Overridden by backfill_depth queue attribute. Recommendation: set this to less than 100. ๐ŸŒธ

  • Readable by all; settable by Operator and Manager.
  • Format: Integer
  • Valid values: Must be >= 0
  • Behavior:
    • >= 0 โ€” PBS backfills around the specified number of jobs.
    • Unset โ€” backfill depth is set to 1.
  • Python type: int
  • Default: Unset (backfill depth is 1)

๐Ÿ’Œ comment ๐Ÿ’Œ

Informational text. Can be set by a scheduler or other privileged client. cute little note field. ๐Ÿ’–

  • Readable by all; settable by Operator, Manager, and PBS.
  • Format: String of any form
  • Python type: str
  • Default: No default

๐Ÿงš default_chunk ๐Ÿงš

The list of resources which will be inserted into each chunk of a job's select specification if the corresponding resource is not specified by the user. This provides a means for a site to be sure a given resource is properly accounted for even if not specified by the user. so helpful. ๐Ÿ’…

  • Readable by all; settable by Operator and Manager.
  • Format: String
  • Syntax:
default_chunk.<resource name>=<value>,
default_chunk.<resource name>=<value>, ...
  • Python type: pbs.pbs_resource
  • Syntax:
default_chunk["<resource name>"]=<value>

where resource name is any built-in or custom resource

  • Default: No default

๐Ÿ’€ default_node ๐Ÿ’€

default_node is No longer used. that's it. that's the tweet. ๐Ÿ—‚๏ธ

  • Status: No longer used.

๐Ÿ‘‘ default_qdel_arguments ๐Ÿ‘‘

Argument to qdel command. Automatically added to all qdel commands. See qdel(1B). Overrides standard defaults. Overridden by arguments given on the command line. ๐Ÿ’ซ

  • Readable by all; settable by Operator and Manager.
  • Format: String
  • Syntax: "-Wsuppress_mail=<N>"
  • Python type: pbs.args
  • Default: No default

๐ŸŒŸ default_qsub_arguments ๐ŸŒŸ

Arguments that are automatically added to the qsub command. Any valid arguments to qsub command, such as job attributes. Setting a job attribute via default_qsub_arguments sets that attribute for each job which does not explicitly override it. See qsub(1B). Settable by the administrator via the qmgr command. Overrides standard defaults. Overridden by arguments given on the command line and in script directives. okay this one is a little main character, but we got it. ๐Ÿ’–

  • Readable by all; settable by Operator and Manager.
  • Format: String
  • Syntax:
"<option> <value> <option> <value>"
  • Python type: pbs.args
  • To set:
Qmgr: s s default_qsub_arguments ="<option> <value>"
  • To add to existing:
Qmgr: s s default_qsub_arguments +="<option> <value>"
  • Example:
Qmgr: set server default_qsub_arguments = "-r y -N MyJob"
Qmgr: set server default_qsub_arguments += "-l Blue=False"
  • Default: No default

๐Ÿ’… default_queue ๐Ÿ’…

The name of the default target queue. Used for requests that do not specify a queue name. Must be set to an existing queue. default queue is the moment. ๐ŸŽ€

  • Readable by all; settable by Operator and Manager.
  • Format: Queue name
  • Python type: pbs.queue
  • Default: workq

๐Ÿต eligible_time_enable ๐Ÿต

Controls starving behavior. Toggles between using the value of the job's eligible_time attribute and the value of now() - etime to evaluate whether job is starving. starving-job tea. ๐ŸŒธ

  • Readable by all; settable by Manager.
  • Format: Boolean
  • Python type: bool
  • Behavior:
    • True โ€” the value of the job's eligible_time attribute is used for its starving time.
    • False โ€” the value of now() - etime is used for the job's starving time.
  • Default: False

๐Ÿ—‚๏ธ est_start_time_freq ๐Ÿ—‚๏ธ

est_start_time_freq is Obsolete. No longer used. another one for the archives. ๐Ÿ’€

  • Status: Obsolete. No longer used.

flatuid ๐Ÿ”‘

okay so this one is all about authorization โ€” like, who's allowed to submit and alter jobs. It specifies whether user names are treated as being the same across the PBS server and all submission hosts in the complex. It can be used to allow users without accounts at the server host to submit jobs.

Also, real talk: if UserA has an account at the server host, PBS requires that UserA@<server host> is the same as UserA@<execution host>.

  • Readable by all; settable by Manager.
  • Format: Boolean
  • Python type: bool
  • Default: False (authorization is required)

Behavior:

  • True โ€” PBS assumes that UserA@<submithost> is same user as UserA@<server name>. Jobs that run under the name of the job owner do not need authorization. A job submitted under a different username, by using the -u option to the qsub command, requires authorization. Entries in .rhosts or hosts.equiv are not checked, so even if UserA@host1 has an entry for UserB@host2, UserB@host2 cannot operate on UserA@host1's jobs. User without account on server can submit jobs. ๐Ÿ’–
  • False โ€” PBS does not assume that UserA@<submission host> is the same user as UserA@<server host>. Jobs that run under the name of the job owner need authorization. Users must have accounts on the server host to submit jobs.

FLicenses ๐ŸŽŸ๏ธ

The number of licenses currently available for allocation to unlicensed hosts. Yes that's a capital F, do not come for me, that's literally how it's spelled.

  • Readable by all; settable by Manager.
  • Format: Integer
  • Python type: int
  • Default: No default

job_history_duration ๐Ÿ•ฐ๏ธ

The length of time PBS will keep each job's history. Your receipts, archived.

  • Readable by all; settable by Manager.
  • Format: Duration
  • Syntax: [[hours:]minutes:]seconds[.milliseconds]
  • Python type: pbs.duration
  • Default: Two weeks

job_history_enable ๐Ÿ“š

Enables job history management. Setting this attribute to True enables job history management. That's it, that's the whole vibe.

  • Readable by all; settable by Manager.
  • Format: Boolean
  • Python type: bool
  • Default: False

job_requeue_timeout โณ

The amount of time that can be taken while requeueing a job. Like, how long the requeue is allowed to drag on before it's giving "girl where are you going".

  • Readable by all; settable by Operator and Manager.
  • Format: Duration
  • Python type: pbs.duration
  • Minimum allowed value: 1 second
  • Maximum allowed value: 3 hours
  • Default: 45 seconds

job_sort_formula ๐Ÿงฎ

Formula for computing job priorities. If the attribute job_sort_formula is set, all schedulers use the formula in it to compute job priorities. When a scheduler sorts jobs according to the formula, it computes a priority for each job, where that priority is the value produced by the formula. Jobs with a higher value get higher priority. Highkey the main character of the scheduler tbh.

  • Readable by all; settable by root.
  • Format: String
  • Syntax: Mathematical formula; can be made up of expressions, where expressions contain terms which are added, subtracted, multiplied, or divided, and which can contain parentheses, exponents, and unary plus and minus.
  • Python type: pbs.job_sort_formula
  • Default: Unset

jobscript_max_size ๐Ÿ“œ

Limit on the size of any job script.

  • Readable by all; settable by Manager.
  • Format: size
  • Units default to bytes
  • Python type: pbs.size
  • Default: 100MB

license_count ๐Ÿ”ข

The license_count attribute contains the following elements with their values: Avail_Global, Avail_Local, Used, High_Use.

  • Readable by all; settable by PBS only. (yep, you don't get to touch this one ๐Ÿ’…)
  • Format: String
  • Syntax:
Avail_Global:<value> Avail_Local:<value> Used:<value>
High_Use:<value>
  • Avail_Global โ€” The number of licenses available at ALM license server (checked in.)
  • Avail_Local โ€” The number licenses kept by PBS (checked out.)
  • Used โ€” The number of licenses currently in use.
  • High_Use โ€” The highest number of licenses checked out and used at any time by the current instance of the PBS server.
  • Python type: pbs.license_count
  • Default value: Avail_Global:0 Avail_Local:0 Used:0 High_Use:0

log_events ๐Ÿชต

The types of events the server logs.

  • Readable by all; settable by Operator and Manager.
  • Format: Integer representation of bit string
  • Python type: int
  • Default: 511 (all events)

mail_from ๐Ÿ“ฌ

The username from which server-generated mail is sent to users. Mail is sent to this address upon failover.

  • Readable by all; settable by Manager.
  • Format: String
  • Python type: str
  • Default: "adm"

managers ๐Ÿ‘‘

List of PBS Managers. The whole VIP list.

  • Readable by all; settable by Manager.
  • Format: String
  • Syntax:
"<username>@<hostname>.<subdomain>.<domain>[,<username>@<hostname>.<subdomain>.<domain>
...]"

The hostname, subdomain, or domain may be wildcarded with an asterisk ("*").

  • Python type: pbs.acl
  • Default: Root on the server host

max_array_size ๐Ÿงบ

The maximum number of subjobs that are allowed in any array job.

  • Readable by all; settable by Operator and Manager.
  • Format: Integer
  • Python type: int
  • Default: 10000

max_concurrent_provision ๐Ÿ—๏ธ

The maximum number of vnodes allowed to be in the process of being provisioned. Cannot be set to zero. When unset, default value is used.

  • Readable by all; settable by Manager.
  • Format: Integer
  • Python type: int
  • Default: 5

max_group_res ๐Ÿšง

Old limit attribute. Incompatible with new limit attributes. The maximum amount of the specified resource that any single group may consume in this PBS complex.

heads up bestie, "old limit attribute" means exactly what it sounds like โ€” it does not play nice with the new limit attributes, so pick a lane. ๐Ÿ™ˆ
  • Readable by all; settable by Operator and Manager.
  • Format: String
  • Syntax: max_group_res.<resource name>=<value>
  • Python type: pbs.pbs_resource
  • Syntax:
max_group_res["<resource name>"]=<value>
where resource name is any built-in or custom resource
  • Example: set server max_group_res.ncpus=6
  • Default: No default

max_group_res_soft ๐ŸŒฑ

Old limit attribute. Incompatible with new limit attributes. The soft limit on the amount of the specified resource that any single group may consume in this complex. If a group is consuming more than this amount of the specified resource, their jobs are eligible to be preempted by jobs from groups who are not over their soft limit. It's giving "over your limit? bestie you're on the chopping block".

  • Readable by all; settable by Operator and Manager.
  • Format: String
  • Syntax: max_group_res_soft.<resource name>=<value>
  • Python type: pbs.pbs_resource
  • Syntax:
max_group_res_soft["<resource name>"]=<value>
where resource name is any built-in or custom resource
  • Default: No default

max_group_run ๐Ÿƒโ€โ™€๏ธ

Old limit attribute. Incompatible with new limit attributes. The maximum number of jobs owned by any users in a single group that are allowed to be running within this complex at one time.

  • Readable by all; settable by Operator and Manager.
  • Format: Integer
  • Python type: int
  • Default: No default

max_group_run_soft ๐ŸŒฟ

Old limit attribute. Incompatible with new limit attributes. The maximum number of jobs owned by the users in one group allowed to be running in this complex at one time. If a group has more than this number of jobs running, their jobs are eligible to be preempted by jobs from groups who are not over their soft limit.

  • Readable by all; settable by Operator and Manager.
  • Format: Integer
  • Python type: int
  • Default: No default

max_queued ๐Ÿ“ฅ

Limit attribute. The maximum number of jobs allowed to be queued or running in the complex. Can be specified for projects, users, groups, or all. Cannot be used with old limit attributes โ€” new limits only, no mixing, periodt.

  • Readable by all; settable by Operator and Manager.
  • Format: Limit specification
  • Python type: str
  • Default: No default

max_queued_res ๐Ÿ“ฆ

Limit attribute. The maximum amount of the specified resource allowed to be allocated to jobs queued or running in the complex. Can be specified for projects, users, groups, or all. Cannot be used with old limit attributes.

  • Readable by all; settable by Operator and Manager.
  • Format: Limit specification
  • Python type: pbs.pbs_resource
  • Syntax:
max_queued_res["<resource name>"]=<value>
where resource name is any built-in or custom resource
  • Default: No default

max_run ๐Ÿ”ฅ

Limit attribute. The maximum number of jobs allowed to be running in the complex. Can be specified for projects, users, groups, or all. Cannot be used with old limit attributes.

  • Readable by all; settable by Operator and Manager.
  • Format: Limit specification
  • Python type: str
  • Default: No default

max_run_res ๐Ÿงฎ

Limit attribute. The maximum amount of the specified resource allowed to be allocated to jobs running in the complex. Can be specified for projects, users, groups, or all. Cannot be used with old limit attributes.

  • Readable by all; settable by Operator and Manager.
  • Format: Limit specification
  • Python type: pbs.pbs_resource
  • Syntax:
max_run_res["<resource name>"]=<value>
where resource name is any built-in or custom resource
  • Default: No default

๐Ÿ’… max_run_res_soft

Bestie, this is a Limit attribute โ€” a soft cap on how much of a given resource the jobs running in the complex are allowed to grab. You can set it for projects, users, groups, or all. ๐Ÿซถ Heads up: it cannot be used alongside the old limit attributes โ€” pick a lane, babe.

  • Readable by all; settable by Operator and Manager.
  • Format: Limit specification
  • Python type: pbs.pbs_resource

Syntax, iconically:

max_run_res_soft["<resource name>"]=<value>

where resource name is any built-in or custom resource โœจ

Default: No default


๐ŸŒธ max_run_soft

Another Limit attribute โ€” this one's a soft cap on the number of jobs allowed to be running in the complex at once. Same deal: can be specified for projects, users, groups, or all, and it cannot be used with old limit attributes.

  • Readable by all; settable by Operator and Manager.
  • Format: Limit specification
  • Python type: str

Default: No default


๐ŸŽ€ max_running

Old limit attribute โ€” incompatible with the new limit attributes, so don't mix and match, it's giving messy. This is the max number of jobs in the complex allowed to be running at any given time. ๐Ÿ‘‘

  • Readable by all; settable by Operator and Manager.
  • Format: Integer
  • Python type: int

Default: No default


๐Ÿฆ‹ max_user_res

Old limit attribute, and again incompatible with new limit attributes. It's the max amount of the specified resource that any single user may consume within this complex.

  • Readable by all; settable by Operator and Manager.
  • Format: String
  • Syntax: max_user_res.<resource name>=<value>
  • Python type: pbs.pbs_resource

Syntax, one more time for the girlies:

max_user_res["<resource name>"]=<value>

where resource name is any built-in or custom resource โœจ

Example: set server max_user_res.ncpus=6

Default: No default


๐Ÿ’œ max_user_res_soft

Old limit attribute โ€” yep, incompatible with new limit attributes. The soft limit on how much of the specified resource any single user may consume in this complex. The tea โ˜•: if a user is consuming more than this amount of the resource, their jobs become eligible to be preempted by jobs from users who aren't over their soft limit. Main character energy for the users under the limit, honestly.

  • Readable by all; settable by Operator and Manager.
  • Format: String
  • Syntax: max_user_res_soft.<resource name>=<value>
  • Python type: pbs.pbs_resource
max_user_res_soft["<resource name>"]=<value>

where resource name is any built-in or custom resource โœจ

Example: set server max_user_res_soft.ncpus=3

Default: No default


๐Ÿ“ max_user_run

Old limit attribute, incompatible with new limit attributes. Max number of jobs owned by a single user allowed to be running in this complex at one time.

  • Readable by all; settable by Operator and Manager.
  • Format: Integer
  • Python type: int

Default: No default


๐ŸŒˆ max_user_run_soft

Old limit attribute, incompatible with new limit attributes. The soft limit on how many jobs a single user can have running in this complex at one time. And fr fr, if a user has more than this number running, their jobs are eligible to be preempted by jobs from users who aren't over their soft limit. โœจ

  • Readable by all; settable by Operator and Manager.
  • Format: Integer
  • Python type: int

Default: No default


๐Ÿ’€ node_fail_requeue

This one controls whether running jobs get automatically requeued or deleted when the primary execution host fails. It's the number of seconds to wait after losing contact with Mother Superior before requeueing or deleting jobs. ๐Ÿ˜ญ

It reverts to the default value when the server is restarted โ€” so don't get too attached to your setting, bestie.

Can be set by Managers and Operators. Visible to all.

  • Format: Integer
  • Python type: int

Behavior, bestie:

  • < 0 โ€” Behaves as if set to 1.
  • 0 โ€” Jobs are not requeued; they're left in the Running state until the execution host is recovered.
  • > 0 โ€” Once the host has been down for the specified number of seconds, jobs are requeued if they're marked as rerunnable, or are deleted.
  • Unset โ€” Behaves as if set to the default value of 310.

Default: 310


๐Ÿงš resend_term_delay

Delay, in seconds, for resending the TERM signal to a job. Must be >= 0 and <= 1800 โ€” respect the range, babe.

Can be set by Managers and Operators. Visible to all.

  • Format: Integer
  • Python type: int

Unset: Behaves as if set to the default value of 5.

Default: 5


๐Ÿ‘‘ node_group_enable

Specifies whether placement sets (which includes node grouping) are enabled. See the node_group_key server attribute. ๐Ÿ”ฅ

  • Readable by all; settable by Operator and Manager.
  • Format: Boolean
  • Python type: bool

Example: Qmgr> set server node_group_enable=true

Default: False


๐ŸŽ€ node_group_key

Specifies the resources to use for placement sets (node grouping). It gets overridden by the queue's node_group_key attribute โ€” iykyk. See the node_group_enable server attribute.

  • Readable by all; settable by Operator and Manager.
  • Format: string_array

Syntax: when specifying multiple resources, separate them with commas and enclose the value in double quotes.

  • Python type: pbs.node_group_key

Example: Qmgr> set server node_group_key="ncpus,mem"

Default: Unset


๐Ÿ’– operators

The list of PBS Operators, periodt.

  • Readable by all; settable by Manager.
  • Format: String

Syntax:

<username>@<hostname>.<subdomain>.<domain
name>[,<username>@<hostname>.<subdomain>.<domain name> ...]

The host, subdomain, or domain name may be wildcarded with an asterisk (*). โœจ

  • Python type: pbs.acl

Default: No default


๐Ÿ™ˆ pbs_license_file_location

Deprecated. Do not use. That's it, that's the whole vibe. Do not use it. ๐Ÿ’€


โญ pbs_license_info

Location of the license server(s).

  • Readable by all; settable by Manager.
  • Format: String

Syntax โ€” one or more port number and hostname combinations:

<port1>@<host1>[:<port2>@<host2>:...:<portN>@<hostN>]

where host1, host2, ... hostN can be IP addresses. The delimiter between items is a colon (:). ๐ŸŒธ

  • Python type: str

Default: No default


๐Ÿฆ‹ pbs_license_linger_time

The number of seconds to keep an unused license, when the number of licenses is above the value given by pbs_license_min. Basically the grace period so your license doesn't get ghosted immediately. ๐Ÿ˜Œ

  • Readable by all; settable by Manager.
  • Format: Integer
  • Units: seconds
  • Python type: pbs.duration

To set pbs_license_linger_time:

Qmgr> set server pbs_license_linger_time=<value>

To unset pbs_license_linger_time:

Qmgr> unset server pbs_license_linger_time

Default: 3600 seconds


๐Ÿ’… pbs_license_max

Maximum number of licenses to be checked out at any time โ€” i.e. the maximum number of licenses to keep in the PBS local license pool. It sets a cap on the number of nodes or sockets that can be licensed at one time. ๐Ÿ‘‘

  • Readable by all; settable by Manager.
  • Format: Integer
  • Python type: int

To set pbs_license_max:

Qmgr> set server pbs_license_max=<value>

To unset pbs_license_max:

Qmgr> unset server pbs_license_max

Default: Maximum value for an integer


๐Ÿ“ pbs_license_min

Minimum number of nodes or sockets to permanently keep licensed โ€” i.e. the minimum number of licenses to keep in the PBS local license pool. This is the minimum number of licenses to keep checked out. Slay, keep those licenses warm. ๐Ÿ”ฅ

  • Readable by all; settable by Manager.
  • Format: Integer
  • Python type: int

To set pbs_license_min:

Qmgr> set server pbs_license_min=<value>

To unset pbs_license_min:

Qmgr> unset server pbs_license_min

If unset, PBS automatically sets the value to 0. โœจ

Default: 0


๐ŸŒˆ pbs_version

The version of PBS for this server. Read-only icon behavior.

  • Readable by all.
  • Format: String
  • Python type: pbs.version

Default: No default


โšก power_provisioning

Shows use of power profiles via PBS.

  • Readable by all; set by PBS.
  • Format: Boolean
  • Python type: bool

Behavior:

  • True โ€” Power provisioning is enabled.
  • False โ€” Power provisioning is disabled.

Default: False


๐Ÿงš python_restart_max_hooks

The maximum number of hooks to be serviced before the Python interpreter is restarted. If this number gets exceeded โ€” and the time limit set in python_restart_min_interval has elapsed โ€” the Python interpreter is restarted. Out with the old, in with the fresh interpreter. ๐Ÿ’ซ

  • Readable by all; settable by Manager.
  • Format: Integer
  • Python type: int

Default: 100


๐ŸŽ€ python_restart_max_objects

The maximum number of objects to be created before the Python interpreter is restarted. If this number is exceeded โ€” and the time limit set in python_restart_min_interval has elapsed โ€” the Python interpreter is restarted.

  • Readable by all; settable by Manager.
  • Format: Integer
  • Python type: int

Default: 1000


๐Ÿ’œ python_restart_min_interval

The minimum time interval before the Python interpreter is restarted. If this interval has elapsed, and either the maximum number of hooks to be serviced (set in python_restart_max_hooks) has been exceeded or the maximum number of objects to be created (set in python_restart_max_objects) has been exceeded โ€” the Python interpreter is restarted. Lowkey the bouncer of the Python interpreter's club. ๐Ÿซถ

  • Readable by all; settable by Manager.
  • Format: Integer
  • Units: Seconds or Duration [[HH:]MM:]SS
  • Python type: pbs.duration

Default: 30

query_other_jobs

Okay so this one is the vibe check on whether regular (unprivileged) users can peek at other people's jobs โ€” select them or query their status.

  • When True, unprivileged users can query or select other users' jobs. Slay for collaboration, lowkey terrifying for privacy ๐Ÿซฃ
  • Readable by all; settable by Manager.
  • Format: Boolean
  • Python type: bool
  • Default: True

queued_jobs_threshold

A Limit attribute, bestie. This is the maximum number of jobs allowed to be queued in the complex. Can be specified for projects, users, groups, or all. Cannot be used with old limit attributes โ€” pick a lane ๐Ÿ’…

  • Readable by all; settable by Operator and Manager.
  • Format: Limit specification
  • Python type: str
  • Default: No default

queued_jobs_threshold_res

Another Limit attribute, and this one's resource-flavored ๐Ÿ“ The maximum amount of the specified resource allowed to be allocated to jobs queued in the complex. Can be specified for projects, users, groups, or all. Cannot be used with old limit attributes.

  • Readable by all; settable by Operator and Manager.
  • Format: Limit specification
  • Python type: pbs.pbs_resource
  • Syntax:
queued_jobs_threshold_res["<resource name>"]=<value>

where resource name is any built-in or custom resource

  • Default: No default

reserve_retry_cutoff

Obsolete. No longer used. She's retired, let her rest ๐Ÿ’€


reserve_retry_init

Deprecated, ngl. This is the amount of time after a reservation becomes degraded that PBS waits before attempting to reconfirm the reservation. Important detail: when this value is changed, only reservations that become degraded after the change use the new value. No retroactive glow-ups โœจ

  • Readable and settable by Manager only.
  • Format: Integer
  • Units: Seconds
  • Python type: int
  • Valid values: Must be greater than zero
  • Default: 7200 (2 hours)

reserve_retry_time

The amount of time after a reservation becomes degraded that PBS waits before attempting to reconfirm the reservation, as well as the amount of time between attempts to reconfirm degraded reservations. Two jobs, one attribute, main character energy ๐Ÿ‘‘

Same caveat as above: when this value is changed, only reservations that become degraded after the change use the new value.

  • Readable by all; settable by Manager.
  • Format: Integer
  • Units: Seconds
  • Python type: int
  • Valid values: Must be greater than zero
  • Default: 600 (5 minutes)

resources_assigned

The total of each type of resource allocated to jobs running in this complex, plus the total of each type of resource allocated to any reservation. Reservation resources are added when the reservation starts โ€” timing matters, bestie โฐ

  • Readable by all; settable by PBS only.
  • Format: String
  • Python type: pbs.pbs_resource
  • Syntax:
resources_assigned["<resource name>"]=<value>

where resource name is any built-in or custom resource

  • Default: No default

resources_available

The list of available resources and their values defined on the server. Each resource is listed on a separate line โ€” one per line, we're not cramming ๐Ÿ“‹

  • Readable by all; settable by Operator and Manager.
  • Format: String
  • Syntax:
"resources_available.<resource name>=<value>"

where resource name is any built-in or custom resource

  • Python type: pbs.pbs_resource
  • Syntax:
resources_available["<resource name>"]=<value>

where resource name is any built-in or custom resource

  • Default: No default

resources_cost

No longer used. Ghosted ๐Ÿซฅ


resources_default

The list of default job-wide resource values that are set as limits for jobs in this complex when a) the job does not specify a limit, and b) there is no queue default. Both conditions, no skipping ๐ŸŽ€

Heads up: the value for a string array, e.g. resources_default.<string array resource>, can contain only one string. For host-level resources, see the default_chunk.<resource name> server attribute.

  • Readable by all; settable by Operator and Manager.
  • Format: String
  • Syntax:
resources_default.<resource name>=value[, ...]
  • Python type: pbs.pbs_resource
  • Syntax:
resources_default["<resource name>"]=<value>

where resource name is any built-in or custom resource

  • Default: No limit

resources_max

The maximum amount of each resource that can be requested by any single job in this complex โ€” but only if there is not a resources_max value defined for the queue at which the job is targeted. Queue wins, iykyk. This attribute functions as a gating value for jobs entering the PBS complex ๐Ÿšช

  • Readable by all; settable by Operator and Manager.
  • Format: String
  • Syntax:
resources_default.<resource name>=value[, ...]
  • Python type: pbs.pbs_resource
  • Syntax:
resources_max["<resource name>"]=<value>

where resource name is any built-in or custom resource

  • Default: No limit

restrict_res_to_release_on_suspend

Comma-separated list of consumable resources to be released when jobs are suspended. If unset, all consumable resources are released on suspension. All or a curated list, no in-between ๐Ÿ’…

  • Readable by all; settable by Manager.
  • Format: String array
  • Syntax: comma-separated list
  • Python type: Python list
  • Default: Unset

resv_enable

Specifies whether or not advance and standing reservations can be created at this server. Reservation gatekeeping, respectfully.

  • Readable by all; settable by Manager.
  • Format: Boolean
  • Python type: bool
  • Behavior:
    • When set to True, new reservations can be created.
    • When changed from True to False, new reservations cannot be created, but existing reservations are honored. The old ones stay iconic โœจ
  • Default: True

resv_post_processing_time

The amount of time allowed for reservations to clean up after running jobs. Reservation duration and end time are extended by this amount of time. Jobs are not allowed to run during the cleanup period โ€” that's her me-time ๐Ÿง–

  • Readable by all; settable by Operator and Manager.
  • Format: Duration
  • Syntax:
[[hours:]minutes:]seconds[.milliseconds]
  • Python type: int
  • Behavior: When unset, behaves as if set to zero.
  • Default: Unset

rpp_highwater

The maximum number of messages. Short and sweet, we love a concise queen ๐ŸŒธ

  • Readable by all; settable by Manager.
  • Format: Integer
  • Python type: int
  • Valid values: Greater than or equal to one
  • Default: 1024

rpp_max_pkt_check

Maximum number of TPP messages processed by the main server thread per iteration. Per iteration, bestie โ€” it's a per-loop situation ๐Ÿ”

  • Readable by all; settable by Manager.
  • Format: Integer
  • Python type: int
  • Default: 1024

rpp_retry

In a fault-tolerant setup (multiple pbs_comms), when the first pbs_comm fails partway through a message, this is number of times TPP tries to use the first pbs_comm. Persistence!! We respect the effort fr fr ๐Ÿซถ

  • Readable by all; settable by Manager.
  • Format: Integer
  • Python type: int
  • Valid values: Greater than or equal to zero
  • Default: 10

scheduler_iteration

The time between scheduling iterations. The scheduler's little heartbeat ๐Ÿ’“

  • Readable by all; settable by Operator and Manager.
  • Format: Integer
  • Units: Seconds
  • Python type: pbs.duration
  • Default: 600 (10 minutes)

scheduling

Enables scheduling of jobs. Specified by value of -a option to pbs_server command. If -a is not specified, value is taken from previous invocation of pbs_server. Muscle memory, basically.

  • Readable by all; settable by Operator and Manager.
  • Format: Boolean
  • Python type: bool
  • Default: False if never set via pbs_server command

server_host

The name of the host on which the active server is running. If the secondary server takes over, this attribute is set to the name of the secondary server's host. When the primary server takes control again, this attribute shows the name of the primary server's host. The crown passes back and forth ๐Ÿ‘‘

  • Readable by all; settable by PBS only.
  • Format: String
  • Syntax:
<hostname>.<domain name>

If the server is listening to a non-standard port, the port number is appended, with a colon, to the hostname:

<hostname>.<domain name>:<port number>
  • Python type: str
  • Default: No default

server_state

The current state of the server. It's giving mood ring, but make it infrastructure ๐Ÿ’…

  • Readable by all; settable by PBS only.
  • Format: String
  • Python type: Each server state's Python type is its corresponding server state constant
  • Server states and their Python types:

Active โ€” pbs.SV_STATE_ACTIVE The server is running. The scheduler is between scheduling cycles.

Hot_Start โ€” pbs.SV_STATE_HOT The server will run first any jobs that were running when it was shut down.

Idle โ€” pbs.SV_STATE_IDLE The server is running. The default scheduler's scheduling attribute is False.

Scheduling โ€” pbs.SV_STATE_ACTIVE The server is running. The scheduler is in a scheduling cycle.

Terminating โ€” pbs.SV_STATE_SHUTIMM or pbs.SV_STATE_SHUTSIG The server is terminating. No additional jobs will be run.

Terminating_Delayed โ€” pbs.SV_STATE_SHUTDEL The server is terminating in delayed mode. No new jobs will be run. The server will shut down when all running jobs have finished.

  • Default: No default

single_signon_password_enable

Removed. (2020.1) She left the group chat ๐Ÿ’€


state_count

List of the number of jobs in each state in the complex. Suspended jobs are counted as running โ€” yes, even while napping ๐Ÿ˜ด

  • Readable by all; settable by PBS only.
  • Format: String
  • Syntax:
transiting=<value>, queued=<value>, ...
  • Python type: pbs.state_count
  • Default: No default

system_cost

No longer used. Gone, but not forgotten ๐Ÿ™ˆ

total_jobs โ€” the total number of jobs in the complex, bestie. If the job_history_enable attribute is set to True, this includes jobs that are finished, deleted, and moved. Anyone can read it; only PBS gets to set it.

  • Format: Integer
  • Python type: int
  • Default: No default

๐Ÿšซ Incompatible Limit Attributes ๐Ÿšซ

Okay so the old limit attributes and the new limit attributes are incompatible โ€” they do not coexist. If even one of one kind is set, none of the other kind can be set. You have to unset all of one kind before you can set any of the other kind. Thatโ€™s the whole rule, no cap.

โœจ FORMATS โœจ

โฑ๏ธ Duration โฑ๏ธ

Syntax is either:

[[hours:]minutes:]seconds[.milliseconds]

or an integer, whose units are seconds.

๐ŸŽš๏ธ Limit specification ๐ŸŽš๏ธ

Limit attributes can be set, added to, or removed from. Here are the formats, exactly:

Format for setting a limit specification:

set server <limit attribute> = "[<limit specification>=<limit value>], [<limit specification>=<limit value>] ..."

Format for adding to a limit specification:

set server <limit attribute> += "[<limit specification>=<limit value>], [<limit specification>=<limit value>] ..."

Format for removing from a limit specification:

set server <limit attribute> -= "[<limit specification>=<limit value>], [<limit specification>=<limit value>] ..."

or:

set server <limit attribute> -= "[<limit specification>], [<limit specification>] ..."

Where limit specification is:

  • o:PBS_ALL โ€” overall limit
  • p:PBS_GENERIC โ€” generic users
  • p:<project name> โ€” an individual project
  • u:PBS_GENERIC โ€” generic users
  • u:<user name> โ€” an individual user
  • g:PBS_GENERIC โ€” generic groups
  • g:<group name> โ€” an individual group

The limit specification can contain spaces anywhere except after the colon (:). If there are comma-separated limit specifications, the entire string must be enclosed in double quotes. A user name, group name, or project name containing spaces must be enclosed in quotes.

And the quote nesting is a whole thing: if a user name, group name, or project name is quoted using double quotes, and the entire string requires quotes, the outer enclosing quotes must be single quotes. Similarly, if the inner quotes are single quotes, the outer quotes must be double quotes. Keep that straight and youโ€™re golden.

PBS_ALL is a keyword which indicates that this limit applies to the usage total. PBS_GENERIC is a keyword which indicates that this limit applies to generic users, groups, or projects. When removing a limit, the limit value does not need to be specified. And yes โ€” PBS_ALL and PBS_GENERIC are case-sensitive.

Format for setting a limit attribute:

set server <limit attribute> = "[<limit specification>=<limit value>], [<limit specification>=<limit value>], ..."
set queue <queue name> <limit attribute> = "[<limit specification>= <limit value>], [<limit specification>=<limit value>], ..."

For example, to set the max_queued limit on QueueA to 5 for total usage, and to limit user bill to 3:

s q QueueA max_queued = "[o:PBS_ALL=5], [u:bill =3]"

Examples of setting, adding, and removing:

set server max_run="[u:PBS_GENERIC=2], [g:group1=10], [o:PBS_ALL = 100]"
set server max_run+="[u:user1=3], [g:PBS_GENERIC=8]"
set server max_run-="[u:user2], [g:group3]"

๐Ÿ‘€ SEE ALSO ๐Ÿ‘€

  • qdel(1B)
  • qmgr(1B)
  • qsub(1b)

signed off from the Local source/version, dated 18 July 2020, for pbs_server_attributes(7B) โ€” mwah ๐Ÿ’…๐Ÿ’–โœจ

๐Ÿ“ฆ where this page comes from