DESCRIPTION
Resource quota sets (rqs) are a flexible way to set a maximum resource
consumption for any job requests. They are used by the scheduler to
select the next possible jobs for running. The job request distinction
is done by a set of user, project, cluster queue, host and pe filter
criteria.
By using the resource quota sets administrators are allowed to define a
fine granular resource quota configuration. This helps restricting some
job requests to a lesser resource usage and granting other job requests
a higher resource usage.
Note: Jobs requesting an Advance Reservation (AR) are not honored by
Resource Quotas and are neither subject of the resulting limit, nor are
debited in the usage consumption.
A list of currently configured rqs can be displayed via the qconf(1)
-srqsl option. The contents of each listed rqs definition can be shown
via the -srqs switch. The output follows the SGE_resource_quota format
description. New rqs can be created and existing can be modified via
the -arqs, -mrqs and -drqs options to qconf(1).
A resource quota set defines a maximum resource quota for a particular
job request. All of the configured rule sets apply all of the time.
This means that if multiple resource quota sets are defined, the most
restrictive set is used.
Every resource quota set consist of one or more resource quota rules.
These rules are evaluated in order, and the first rule that matches a
specific request will be used. A resource quota set always results in
at most one effective resource quota rule for a specific request.
Note, Univa Grid Engine allows backslashes (\) be used to escape new-
line (\newline) characters. The backslash and the newline are replaced
with a space (" ") character before any interpretation.
FORMAT
A resource quota set definition contains the following parameters:
name
The resource quota set name.
enabled
If set to true the resource quota set is active and will be considered
for scheduling decisions. The default value is false.
description
This description field is optional and can be set to arbitrary string.
The default value is NONE.
limit
Every resource quota set needs at least one resource quota rule defini-
users Contains a comma separated list of UNIX users or ACLs (see
access_list(5)). This parameter filters for jobs by a user in
the list or one of the ACLs in the list. Any user not in the
list will not be considered for the resource quota rule. The
default value is '*', which means any user. An ACL is differen-
tiated from a UNIX user name by prefixing the ACL name with an
'@' sign. To exclude a user or ACL from the rule, the name can
be prefixed with the '!' sign. Defined UNIX user or ACL names
need not be known in the Univa Grid Engine configuration.
projects
Contains a comma separated list of projects (see project(5)).
This parameter filters for jobs requesting a project in the
list. Any project not in the list will not be considered for the
resource quota rule. If no project filter is specified, all
projects and jobs with no requested project match the rule. The
value '*' means all jobs with requested projects. To exclude a
project from the rule, the name can be prefixed with the '!'
sign. The value '!*' means only jobs with no project requested.
pes Contains a comma separated list of PEs (see sge_pe(5)). This
parameter filters for jobs requesting a pe in the list. Any PE
not in the list will not be considered for the resource quota
rule. If no pe filter is specified, all pe and jobs with no
requested pe matches the rule. The value '*' means all jobs with
requested pe. To exclude a pe from the rule, the name can be
prefixed with the '!' sign. The value '!*' means only jobs with
no pe requested.
queues Contains a comma separated list of cluster queues (see
queue_conf(5)). This parameter filters for jobs that may be
scheduled in a queue in the list. Any queue not in the list
will not be considered for the resource quota rule. The default
value is '*', which means any queue. To exclude a queue from the
rule, the name can be prefixed with the '!' sign.
hosts Contains a comma separated list of host or hostgroups (see
host(5) and hostgroup(5)). This parameter filters for jobs that
may be scheduled in a host in the list or a host contained in a
hostgroup in the list. Any host not in the list will not be con-
sidered for the resource quota rule. The default value is '*',
which means any hosts. To exclude a host or hostgroup from the
rule, the name can be prefixed with the
to This mandatory field defines the quota for resource attributes
for this rule. The quota is expressed by one or more limit defi-
nitions separated by commas. The configuration allows two kind
of limits definitions
static limits
Static limits sets static values as quotas. Each limits
consists of a complex attribute followed by an "=" sign
floating point numbers in double precision. The complex
values (complex1, ...) are specified by the name defined
as type INT or DOUBLE in the complex list (see com-
plex(5)).
Note: Dynamic limits can only configured for a host-spe-
cific rule.
Please note that resource quotas are not enforced as job resource lim-
its. Limiting for example h_vmem in a resource quota set does not
result in a memory limit being set for job execution.
EXAMPLES
The following is the simplest form of a resource quota set. It
restricts all users together to the maximal use of 100 slots in the
whole cluster.
=======================================================================
{
name max_u_slots
description "All users max use of 100 slots"
enabled true
limit to slots=100
}
=======================================================================
The next example restricts user1 and user2 to 6g virtual_free and all
other users to the maximal use of 4g virtual_free on every host in
hostgroup lx_hosts.
=======================================================================
{
name max_virtual_free_on_lx_hosts
description "resource quota for virtual_free restriction"
enabled true
limit users {user1,user2} hosts {@lx_host} to virtual_free=6g
limit users {*} hosts {@lx_host} to virtual_free=4g
}
=======================================================================
The next example shows the use of a dynamic limit. It restricts all
users together to a maximum use of the double size of num_proc.
=======================================================================
{
name max_slots_on_every_host
enabled true
limit hosts {*} to slots=$num_proc*2
}
=======================================================================
Man(1) output converted with
man2html