Wann httpclose oder http-server-schließen Sie in haproxy
Ich geerbt habe ein system wo es hat einige performance-Probleme aufgrund von Netzwerk-Latenz. Wir verwenden CentOS 5.x, und haproxy 1.5 x
Der Grund dafür ist, dass es eine Menge von Zeitaufwand für jede API-Anfragen, die aufgrund der verbrachten Zeit auf die "erste Verbindung"
Ignorieren den rest der Zeit dies ist nur ein Beispiel, genommen von web, der rest vom timing ist in Ordnung von meiner Seite, außer für die "erste Verbindung", wo alle API-Aufrufe sind zeitlich rund um die 150 - 250ms für die "erste Verbindung".
Nach dem entfernen der Einstellungen "option httpclose" von haproxy, die performance hat sich deutlich verbessert, da alle die Wartezeit von "erste Verbindung" gegangen sind.
Nach gehen durch einige der Artikel, die ich gefunden habe, diese eine http://killtheradio.net/technology/haproxys-keep-alive-functionality-and-how-it-can-speed-up-your-site/
Wo er schlage vor, zu entfernen:
option httpclose
und ersetzen mit
timeout client 5000
option http-server-close
Also meine Fragen sind:
- Wann verwenden Sie die option httpclose?
- Der haproxy server ist verantwortlich für alle unsere Rest-API-Aufrufe, gibt es andere überlegungen, die ich brauchen, um bewusst sein, nach dem entfernen der config-option "httpclose"?
- Sollte ich verwenden "- option http-server-schließen", und was sind die Auswirkungen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie tatsächlich
Müssen Sie sicherstellen, dass die frontend-limits sind hoch genug (vorsichtig sein, die Speicher-Anforderungen), die Sie aufnehmen können, die Zunahme der Anzahl der aktiven Sitzungen, die höher sein werden aufgrund der Tatsache, dass die verbindungen nicht mehr geschlossen werden nach jeder Anfrage.
Nächste Sache ist, dass Ihr backend unterstützt die " keep alive Richtung HAproxy, ansonsten die oben ist nutzlos, und Sie können wechseln Sie zurück zur http-server-schließen Modus.
Abhängig von der Geschwindigkeit Ihrer Wünsche und der Anzahl paralleler clients, müssen Sie
timeout http-keep-alive
um sicherzustellen, dass Sie haben genug Anschluss-slots auf das frontend, während noch die Beibehaltung der guten Verbindung Wiederverwendung Prozentsatz. Guter Wert, mit zu beginnen ist in ein paar Sekunden.Den
httpclose
option sollte nur verwendet werden, wenn Sie möchten, schließen Sie die Verbindung in Richtung sowohl der server als auch der client ist fast nie der Fall, es sei denn, die Kunden sind gebrochen. Wenn Sie einen server haben, kann nicht gut umgehen mit viel Leerlauf-Anforderungen, die Sie möglicherweise verwenden möchtenhttp-server-close
option, aber alle modernen web-Servern zu gut.Dies wird auch helfen, mit den SSL-Teil, wie es repräsentiert einen bedeutenden Klumpen der phase der Verbindung (gegeben, dass Sie nicht brauchen, ein SSL-handshake auf jede Anforderung), aber vielleicht möchten Sie sich in die SSL-session-cache-performance und wenn Sie mehr als einen HAproxy server aktiv, RFC5077-Unterstützung (erfordert v1.6+).
https://cbonte.github.io/haproxy-dconv/configuration-1.5.html#tune.ssl.cachesize
https://cbonte.github.io/haproxy-dconv/configuration-1.5.html#3.2-tune.ssl.lifetime