Wir betreiben einen Apache 2.2-Server für eine sehr große Website. In den letzten Monaten haben einige Benutzer langsame Reaktionszeiten gemeldet, während andere (einschließlich unserer Ressourcen, sowohl im internen Netzwerk als auch in unseren Heimnetzwerken) keine Leistungseinbußen feststellen.
Nach ausgiebigen Untersuchungen haben wir schließlich eine „Deny from none“-Anweisung in unserer Konfiguration gefunden, die Reverse-DNS-Lookups (bei denen es zu Zeitüberschreitungen kam) verursachte und damit den Großteil unserer Probleme löste. Allerdings sehen wir in den Apache-Protokollen (unter Verwendung von %D im Protokollformat) bei einigen Kunden immer noch Anfrageverarbeitungszeiten von > 300 s für Bilder, CSS, JavaScript und andere statische Inhalte.
Wir haben alle Deny-/Allow-Anweisungen auf das erneute Vorkommen von „none“ sowie alle anderen Dinge geprüft, von denen wir wissen, dass sie zu umgekehrten DNS-Lookups führen würden (wie etwa die Verwendung von „REMOTE_HOST“ in Umschreiberegeln oder die Verwendung von %a anstelle von %h in unserer Protokollformatkonfiguration). Außerdem haben wir sichergestellt, dass HostnameLookups auf „Off“ eingestellt ist.
Abgesehen davon haben wir auch überprüft, dass bei umgekehrten DNS-Lookups für Leute mit diesem Problem kein Timeout auftritt. Ich bin also ziemlich sicher, dass DNS in diesem Fall kein Problem ist.
Mir gehen die Ideen aus. Gibt es Apache-Konfigurationsszenarien, auf die mich jemand hinweisen kann und die ich möglicherweise übersehe und die dazu führen könnten, dass die Anforderungszeiten für statische Inhalte nur bei bestimmten Benutzern so lange dauern?
Vielen Dank im Voraus.
Antwort1
Wenn ich so etwas finde, überprüfe ich zuerst:
- DNS. Verwenden Sie einen Netzwerk-Dump wie
tcpdump
oderwireshark
um dies zu überprüfen, und schauen Sie sich nicht einfach die Konfigurationsdatei an. Wenn Sie sicher sind, dass dies nicht das Problem ist, - Wie sehen Traceroute/Pings für diese Benutzer aus? Haben sie alle etwas gemeinsam? Ich habe schon erlebt, wie eine schlechte NAT-Box unendlich viel Ärger verursacht hat. Ich habe auch schon erlebt, dass der lokale Datenverkehr eines Benutzers dazu führte, dass meine Site langsamer erschien als bei anderen ohne geladene Verbindungen, obwohl sie BEMERKEN, dass meine langsam ist.
- Firewall/Tunneling. Machen sie etwas Dummes, wie etwa alle ICMP zu blockieren? Sind sie in einem Tunnel? Wenn beides zutrifft, dann ist es wahrscheinlich, dass die PMTU-Erkennung auf seltsame Weise abläuft.
Beachten Sie, dass Antwortzeiten von 300 Sekunden wahrscheinlich bedeuten, dass Apache sie aufgegeben hat, und nicht, dass sie ausgeführt wurden. 5 Minuten sind für den Server eine sehr lange Wartezeit, aber für einen Client ist es noch verrückter, so lange zu warten.