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