pbs_server_attributes(7B)
๐ 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 theacl_hostsserver attribute.Falseโ MoMs are not automatically allowed to contact the server with the same privilege as hosts listed in theacl_hostsserver 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 to1.
- 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'seligible_timeattribute is used for its starving time.Falseโ the value ofnow() - etimeis 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 asUserA@<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-uoption to theqsubcommand, requires authorization. Entries in.rhostsorhosts.equivare not checked, so even ifUserA@host1has an entry forUserB@host2,UserB@host2cannot operate onUserA@host1's jobs. User without account on server can submit jobs. ๐ - False โ PBS does not assume that
UserA@<submission host>is the same user asUserA@<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 to1.0โ Jobs are not requeued; they're left in theRunningstate 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
TruetoFalse, new reservations cannot be created, but existing reservations are honored. The old ones stay iconic โจ
- When set to
- 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:
Falseif never set viapbs_servercommand
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 limitp:PBS_GENERICโ generic usersp:<project name>โ an individual projectu:PBS_GENERICโ generic usersu:<user name>โ an individual userg:PBS_GENERICโ generic groupsg:<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
- nixos 26.05: openpbs 23.06.06-unstable-2026-04-02
- nixpkgs unstable: openpbs 23.06.06-unstable-2026-04-02
- Copyright (C) 1994-2021 Altair Engineering, Inc
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms