On Wed, Feb 08, 2023 at 10:18:07AM +0100, Willy Tarreau wrote:
> On Wed, Feb 08, 2023 at 09:58:47AM +0100, Thomas Pedoussaut wrote:
> > On 08/02/2023 09:52, Willy Tarreau wrote:
> > > Just out of curiosity (and in order to help narrow the root cause
> > > further),
> > > it would be interesting to know if the same problem happens with static
> > > algorithms like "balance uri", as they cannot use the same heuristics as
> > > other algos like "random" or "roundrobin".
> > 
> > I had issues with leastconn (which was my original config), then tried
> > roundrobin and then random, so it seems unrelated.
> 
> In fact the 3 of them are what we call non-determinist algorithms.
> There are conditions in which they may entirely bypass a server that
> is saturated and decide to pick another one. Other algorithms (hash-based)
> need to pick a specific server, saturated or not, and will follow a
> slightly different approach. That's why I'm asking, because if one of
> such algorithms shows a different behavior, it can help us focus on
> the different code paths and conditions, and give us some hints about
> the cause. And conversely, if it makes no difference, we can eliminate
> the differences between these algors from the candidates.
> 
> > In fact at some point I had a backend with 5 srv from config + 3 dynamically
> > inserted. Those new ones got about 50 requests pushed to them, until they
> > reaches the slowstart delay(I think, must investigate more), when they
> > stopped being selected for new connection. The status was L7OK for the 8 srv
> > regardless of the way they arrived.
> 
> Oh I didn't notice you had a slowstart. That's interesting, as it is
> used both to modulate the weight and the maxconn value. Maybe we're
> having an issue related to this. Or maybe the task that is supposed
> to raise it is not started, for whatever reason.

We just checked with Amaury, and while the warmup task is properly
called, it looks like the minconn is not set, so it must remain zero
by default, which precisely prevents entries from being delivered to
the server and will force them to go to the queue.

I think that if you set the server's minconn setting to 1 it should
work around the problem for now. Could you please confirm ?

Thanks,
Willy

Reply via email to