FQ Pacing Plugin¶
This is a remap plugin that allows ATS to rate limit an individual TCP connection. It is based on Linux support for the Fair Queuing qdisc. FQ and SO_MAX_PACING_RATE is available in RedHat/Centos 7.2+, Debian 8+, and any other Linux distro with a kernel 3.18 or greater.
How it Works¶
When activated during remap processing, this plugin calls
setsockopt(SO_MAX_PACING_RATE) on the
client socket. To prevent the rate from leaking to other remap rules the client may access in future
requests, a hook is set to deactivate the pacing when the current transaction completes.
First, enable the FQ qdisc by setting
/etc/sysctl.conf and rebooting.
The FQ Pacing plugin is a remap plugin. Enable it by adding
fq_pacing.so to your
remap.config file. Provide a
--rate=BytesPerSec option to set
the maxmimum rate of a TCP connection matching that remap line.
Here is an example remap.config entry:
map http://reverse-fqdn.com http://origin.com @plugin=fq_pacing.so @pparam=--rate=100000