Unser Haproxy Loadbalancer öffnet Tausende von Verbindungen zu seinen Backends obwohl die Einstellungen sagen, dass nicht mehr als 10 Verbindungen pro Server-Instanz geöffnet werden sollen (siehe unten). Wenn ich "Option http-server-close" austrenne, fällt die Anzahl der Backend-Verbindungen ab, aber ich möchte Keep-Alive-Backend-Verbindungen haben.
Warum wird maxconn nicht mit http-keep-alive
berücksichtigt? Ich habe mit ss
verifiziert, dass die geöffneten Backend-Verbindungen in ESTABLISHED
state sind.
Im Keep-Alive-Modus werden Verbindungen im Leerlauf nicht berücksichtigt. Wie in diesem HAProxy Mail-Thread
erläutertDie Sache ist, du willst nicht um Anfragen in der Warteschlange eines Servers zu belassen, während der Server eine Tonne hat von Leerlaufverbindungen.
Dies macht sogar mehr Sinn, wenn man weiß, dass Browser Preconnect initiieren, um die Seitenleistung zu verbessern. Im Keep-Alive-Modus werden also nur ausstehende / aktive Verbindungen berücksichtigt.
Sie können immer noch Maxconn-Limits erzwingen, unabhängig vom Verbindungsstatus mit tcp-Modus , insbesondere sehe ich keinen besonderen Grund, den Modus http in Ihrer aktuellen Konfiguration zu verwenden (abgesehen von Reacher-Logs) .
Oder Sie können Ссылка mit dem http-Modus verwenden, um die niedrigste Anzahl zu erreichen gleichzeitige Verbindungen.
Tags und Links networking load-balancing haproxy connection