Hi Robin,

On Wed, May 10, 2017 at 09:15:44PM +0000, Robin H. Johnson wrote:
> Hi,
> 
> I'm wondering about the status of bandwidth limiting that was originally
> planned for 1.6.
> 
> In the archives I see discussions in 2012 & 2013; Willy's responses:
> 2012-04-17 planned for 1.6:
> https://www.mail-archive.com/haproxy@formilux.org/msg07096.html
> 2013-05-01 planned for 1.6:
> https://www.mail-archive.com/haproxy@formilux.org/msg09812.html

Several of us would like to get it done, and with filters it should be
easy and even fun. The most difficult I guess is to define the different
limiting classes we want so that we don't change the configuration every
other day. What is currently sure has already been requested :
  - per connection limits (ie: no user can take more than X MBps)
  - per frontend limits (ie: no hosted service can take more than X Mbps)
  - per backend limits  (ie: no hosted customer of a virtual server can take 
more than X)
  - per process limits (ie: limit total outgoing bandwidth)
  - per track-sc limit (ie: track an entry in a table and the bandwidth
    there is shared) so that more complex criteria can be set

The 1st and 4th ones have been the most demanded. The first one to limit
hungry users and save bandwidth (eg: don't let them preload too much data
that they're going to drop when clicking stop on a sound or video player).
The fourth one to avoid network drops when the external bandwidth is itself
capped on network equipments.

You may want to take a stab at this, the filters API is well documented
and that may give you some hints about some points we have to think about.
We definitely need to make progress on this stuff that has been promised
since 1.4.x but never considered urgent.

Willy

Reply via email to