On Tue, Nov 7, 2017 at 11:57 PM, Lukas Tribus <lu...@ltri.eu> wrote: Hi Lukas,
> Yes, in 1.7 you can change server maxconn values in real time using > the admin socket: > https://cbonte.github.io/haproxy-dconv/1.7/management. html#9.3-set%20maxconn%20server Thanks, will take a look at if we can use this. The only issue is that we want to be able to change rps very often, and some backend sections contain upto 500 servers (and much more during sales), and doing that on the fly at high frequency may not scale. > You are reluctant to elaborate on the bigger picture, so I guess > generic advice is not what you are looking for. I just hope you are > not trying to build some kind of distributed rate-limiting > functionality with this. Sorry, not reluctance, I thought giving too much detail would put off people from taking a look :) So you are right, we are trying to build a distributed rate limiting feature, and the control plane is mostly ready (thanks to HAProxy developers for making such a performant/configurable system). The service monitors current http_request_rate and current RPS setting via uds every second, and updates these values to a central repository (zookeeper), and on demand, tries to increase capacity by requesting capacity from other servers so as to keep capacity constant at the configured value (e.g. 1000 RPS). Is this something you would not recommend? > I don't have enough experience with stick-tables to comment on this > generally, but I would suggest you upgrade to a current 1.7 release > first of all and retry your tests. There are currently 223 bugs fixed > in releases AFTER 1.6.3: > http://www.haproxy.org/bugs/bugs-1.6.3.html Thanks, we are considering moving to this version. > Maybe someone more stick-table savvy can comment on your specific question. If anyone else has done something similar, would really like to hear from you on how to control RPS in the backend. Regards, - Krishna