Willy,

On Tue, Oct 23, 2012 at 2:10 AM, Willy Tarreau <w...@1wt.eu> wrote:
> Some of us have already been discussing about the possibility to adapt the
> HTTP checks to report a header to modulate the server's weight (in fact it
> was planned for 1.3.14 but skipped because of no use at this time). But we
> can bring this back on the table.
>
> The agent would be very simple in my opinion, it would accept incoming
> connections from the load balancer on a specific port, would check that
> the server is available and will adjust a weight between 0 and 100%
> depending on the number of available connection slots relative to a
> configured max on the servers.
>
> So a server which supports 1000 concurrent connections and runs at 150
> would have 850/1000 == 85% weight. Then haproxy will still be able to
> use leastconn depending on that weight, to distribute the load across
> all servers.
>
> Does that sound good to you ?

Yes, that sounds exactly like what I am looking for.

I suppose if/when this feature hits, I would configure an HTTP check
for each FTP backend (in addition to the port 21 tcp check). The HTTP
check would connect to a simple agent that emitted a header containing
the server's desired weight. HAproxy would handle the rest.

I could get started today by writing a simple poller that would sit on
the load balancer, poll the FTP servers via HTTP and update weights
using the HAProxy control socket. Eventually, HAProxy would handle the
polling via the HTTP check and I could discard the interim poller.

Reply via email to