SGE_RESOURCE_QUOTA(5) File Formats Manual SGE_RESOURCE_QUOTA(5) NAME SGE_resource_quota - Univa Grid Engine resource quota file format DESCRIPTION Resource quota sets (RQSs) are a flexible way to set the maximum resource consumption for any job requests. They are used by the sched- uler to select the next possible jobs to run. The job request distinc- tion is done by a set of user, project, cluster queue, host, PE and job class filter criteria. By using resource quota sets, administrators are allowed to define a fine-grained resource quota configuration. This helps restrict some job requests to lesser resource usage, and grants other job requests a higher resource usage. Note: Jobs requesting an Advance Reservation (AR) are not honored by Resource Quotas, not subject to the resulting limit, and not debited in the usage consumption. The list of currently configured RQSs can be displayed via the qconf(1) -srqsl option. The contents of each listed RQS definition can be shown via the -srqs option. The output follows the SGE_resource_quota format description. Resource quota sets can be created, modified and deleted 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 consists 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 an arbitrary string. The default value is NONE. limit Every resource quota set needs at least one resource quota rule defini- tion started by the limit field. It's possible to define more resource quota rules divided by a new line. A resource quota rule consists of an optional name, the filters for a specific job request and the resource quota limit. By default, the expressed limit counts for the entire filter scope. To express a filter-scope-specific limit, it's possible to define an expanded list by setting the list between '{' and '}'. It's only possi- ble to set one complete filter in an expanded list. The tags for expressing a resource quota rule are: name The name of the rule. The use is optional. The rule name must be unique in one resource quota set. 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 "projects" 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 "pes" filter is specified, all PEs and jobs with no requested PE match the rule. The value '*' means all jobs with requested PEs. To exclude a PE from the rule, the name can be prefixed with the '!' sign. The value '!*' means only jobs with no PE requested. jcs Contains a comma-separated list of job class or job class vari- ant names (see sge_job_class(5) and jc_list in sge_types(1)). This parameter filters for jobs requesting a job class variant in the list. If the variant part of a name is omitted then the default variant is used as the filter. Any job class not in the list will not be considered for the resource quota rule. If no "jcs" filter is specified, all variants of all job classes and jobs with no job class specification match the rule. To exclude a job class variant from the rule, the name can be prefixed with the exclamation mark (!). '!*' means only jobs that were not derived from a job class. 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 '!' sign. to This mandatory field defines the quota for resource attributes for this rule. The quota is expressed by one or more limit def- initions, separated by commas. There are two kinds of limit definitions: static limits Static limits set static values as quotas. Each limit consists of a complex attribute followed by an "=" sign and the value specification compliant with the complex attribute type (see complex(5)). dynamic limits A dynamic limit is a simple algebraic expression used to derive the limit value. To be dynamic, the formula can reference a complex attribute whose value is used for the calculation of the resulting limit. The formula expres- sion syntax is that of a sum of weighted complex values, that is: {w1|$complex1[*w1]}[{+|-}{w2|$complex2[*w2]}[{+|-}...]] The weighting factors (w1, ...) are positive integers or 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 double the size of num_proc. ======================================================================= { name max_slots_on_every_host enabled true limit hosts {*} to slots=$num_proc*2 } ======================================================================= SEE ALSO sge_intro(1), access_list(5), complex(5), host(5), hostgroup(5), qconf(1), qquota(1), project(5), sge_job_class(5). COPYRIGHT See sge_intro(1) for a full statement of rights and permissions. Univa Grid Engine File Formats UGE 8.5.4 SGE_RESOURCE_QUOTA(5)