Difference: XrootdThrottlingExperimental (2 vs. 3)

Revision 32017-12-20 - BrianBockelman

Line: 1 to 1
 
META TOPICPARENT name="XrootdThrottling"
Changed:
<
<

Experimental Throttles for Xrootd

>
>

Throttles for Xrootd

 
Changed:
<
<
We have been developing throttles for Xrootd, a capability commonly requested by sysadmins. This page covers installation and configuration of the throttles.
>
>
We have contributed throttles for Xrootd, a capability commonly requested by sysadmins. This page covers installation and configuration of the throttles, complementing the upstream document at http://xrootd.org/doc/dev48/xrd_config.htm.
 
Changed:
<
<
While this code has been tested at a production site, it is not yet part of any Xrootd release; we cannot provide any guarantees of correctness.

Installation

The latest build is located here:

http://koji.hep.caltech.edu/koji/buildinfo?buildID=933

Download and install the xrootd-server, xrootd-client, and xrootd-libs RPMs. Alternately, you can add the nebraska-testing yum repository to your node:

http://t2.unl.edu/store/repos/nebraska/6/nebraska-el6-testing/x86_64/

This RPM follows the developer versioning, not the release versioning. To switch back to an official release, you will need to completely remove the RPMs.

>
>
Currently, the throttle code comes as part of the Xrootd install; no additional RPM is needed.
 

Configuration

Changed:
<
<
To enable the Xrootd plugin, you must load it as the primary filesystem library. Add the following line to your configuration:
>
>
To enable the Xrootd plugin, you must request Xrootd to explicitly load it as a filesystem plugin:
 

Changed:
<
<
xrootd.fslib ? /usr/lib64/libXrdThrottle.so
>
>
xrootd.fslib throttle default
 

The following directives control the behavior of the throttle plugin.

Line: 51 to 39
 


Deleted:
<
<
throttle.loadshed [host hostname] [port portnum ] [frequency freq ]

This directive controls the behavior of the throttle plugin when the limits in the throttle.throttle directive have been hit. It has the ability to redirect clients to another server (such as a redirector) as opposed to servicing the read or write request.

Notes:

  • hostname and portnum: The client will be redirected to this hostname and port. The default for portnum is 1094.
  • freq: The frequency of client redirects. This is the percent chance the client will be redirected per 100MB of data read while the server is shedding load. For example, if this is set to 10 and the client performs a 100MB read when the server is under heavy load, there is a 10% chance the read will end in a redirection.
  • Not all clients handle a redirect response after a read request. In particular, it appears the ROOT client respects this while xrdcp does not.
  • In order to prevent loops, throttle.loadshed=1 is added to the client's opaque info and the throttle will not loadshed any client with this directive present.

Example usage:

throttle.loadshed host xrootd.unl.edu port 1094 frequency 10



 throttle.trace [loadshed] [ioload] [bandwidth] [debug] This directive controls the logging behavior of the throttle. In general, each option prints out a status report per second. When combined with debug, pertinent debugging information is printed out once per IO request.
Line: 81 to 50
 
  • iops: Print out information about the IO operations per second.
  • debug: Print out sufficient debugging information to determine how throttle calculations are done for each request.
Changed:
<
<

Full Throttle

>
>
Some sites find this useful while debugging / validating the throttle code but overly verbose for day-to-day operations.

Throttle Example

 
Changed:
<
<
This is the configuration used at Nebraska for testing the throttles
>
>
This is the configuration was used at Nebraska for testing the throttles
 

Changed:
<
<
xrootd.fslib ? /usr/lib64/libXrdThrottle.so
>
>
xrootd.fslib throttle default
 throttle.throttle data 25M concurrency 10
Deleted:
<
<
throttle.loadshed host xrootd.unl.edu port 1094 frequency 10
 throttle.trace loadshed ioload
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback