PROXYD_POLICIES

Specifies the maximum tokens, nominal tokens, and throttle values when the LSF rate limiter is configured. Fix Pack 14 introduces the rate limiter, The rate limiter is managed by the lsfproxyd daemon, which monitors and controls the number of requests and connections that can reach the mbatchd daemon, protecting it from excess requests. For a request to contact mbatchd, it must first obtain a request token from lsfproxyd. After completing the request, the token returns to lsfproxyd. The lsfproxyd daemon distributes tokens in a round-robin fashion, ensuring that each user connection has an fair chance to be served and processed, even under heavy loads.

Syntax

PROXYD_POLICIES="QUERY[ max=maximum_query_connections nominal=nominal_query connections throttle=query_throttle_time] SUBMISSION[ max=maximum_submission_connections nominal=nominal_submission_connections throttle=submission_throttle_time] OTHER[ max=maximum_other_connections nominal=nominal_other_connections throttle=other_throttle_time ]"

Description

To control the number of connections to the rate limiter, the lsfproxyd policy is governed by max, nominal, and throttle values in the lsb.params file. With these values, the lsfproxyd policy ensures that users don't monopolize the rate limiter system; set them as follows. The keywords QUERY, SUBMISSION, and OTHER are all optional. The attributes max, nominal, and throttle are optional. If something is not configured, default values will be used:
max
The maximum number of tokens available for distribution. Once a token reaches its max value, any requests from a non-root or non-administrator user will not be granted a token and the command will not contact mbatchd, failing with an error. Take note, however, that this policy is only for non-root or non-administrator users; requests from root or LSF cluster administrator users are always granted a token, and their requests will still be counted towards tokens currently in use.

When the token is granted, this increases the in-use count; likewise, when a token is returned, this decreases the in-use count. It is possible for the in-use count to exceed the max value because there are no token constraints placed on root and LSF cluster administrator users.

Valid values are any positive integer less than or equal to the MAX_CONCURRENT_QUERY value in the lsb.params file. If not specified, and if the nominal value is specified as a value greater than 100, then the default value of max will be the same value set for nominal. Otherwise, the default value will be 100.

nominal
The nominal and throttle attributes work together to control user requests, and are divided evenly among the running lsfproxyd daemons in the cluster. The nominal attribute is a threshold value; if the number of tokens currently in use is below this value, lsfproxyd will distribute tokens as fast as possible.

Valid values are any positive integer less than or equal to the max value. If not specified, and if the nominal value is not defined, then the default value of nominal will be the same value set for max. Otherwise, the default value will be 50.

throttle
The nominal and throttle attributes work together to control user requests, and are divided evenly among the running lsfproxyd daemons in the cluster.

Valid values are any positive integer in milliseconds. If not specified, the default value will one millisecond.

After changing the PROXYD_POLICIES parameter attributes, restart mbatchd (by running badmin mbdrestart) or reconfigure mbatchd (by running badmin reconfig).

Valid values

Refer to the description section for the max, nominal, and throttle attributes in the description section.

Default

Refer to the description section for the max, nominal, and throttle attributes in the description section.

Example

For example, a policy of PROXYD_POLICIES="QUERY[max=50 nominal=15 THROTTLE=100]" specifies:
  • A maximum of 50 available tokens to be distributed from the lsfproxyd daemon.
  • A token is distributed immediately if the number of existing tokens used less than 15.
  • The rate limiter waits 100 milliseconds before granting new tokens, when there are currently more than 15 in-use tokens.
  • Once an in-use token reaches its max value, a request (from the same category) from an non-root or non-cluster administrator user will not be granted a token. After a certain number of retries (set by the LSF_PROXYD_NOTOKEN_NTRIES parameter value in the lsf.conf file), the command will then not contact mbatchd and will fail with an error message. Note that requests from root or LSF cluster administrators are exempt from this policy as they are always granted a token and their requests are always counted towards the tokens currently in use.