Stack Overflow Careers wird in etwa so serviert:
user -> internet -> our fw -> nginx -> haproxy -> web farm
- FreeBSD ist das verwendete Betriebssystem
- Auf dieser Box ist keine Firewall oder QoS vorhanden
- nginx kümmert sich um unsere SSL-Kündigung
- Haproxy übernimmt den Lastausgleich
- nginx / haproxy pushen ungefähr 15 Mbit / s pro Weg
Während des normalen Betriebs empfängt nginx die HTTP-Anforderung, erledigt ihre Aufgabe und übergibt die Anforderung an eine Haproxy-Instanz, die an die Loopback-Adresse (127.0.0.1) in derselben Box gebunden ist.
Um neulich eine Fehlerbehebung durchzuführen, habe ich die Haproxy-Instanz auf dieselbe Schnittstelle verschoben, auf der Nginx ausgeführt wurde. Dies führte sofort zu einer Latenz von 100 ms für alle Anforderungen. Diese Schnittstelle ist keine echte physische Schnittstelle, sondern eine Karpfenschnittstelle .
Kann mir jemand erklären, warum das so war? Streit mit der Paketwarteschlange vielleicht? Oder ist Loopback vielleicht immer schneller, weil es "weich" ist? Es gibt etwas Grundlegendes, das mir hier fehlt, und ich hoffe, dass mich jemand freundlich erziehen wird.