2 Stimmen

Wie kann man die Ursache für eine HTTP-Anfrage-Latenz/Wartezeit überprüfen?

Ich gebe eine einfache GET-Anfrage an meinen Server, und es kommt zurück nach ~ 1,2 Sekunden im Durchschnitt (mit Firebug NET Registerkarte, die "Warten auf reqponse" Teil- nicht einmal die gesamte Antwort Zeit)

Mein Ping zum Server ist 0.250

Mit Passenger mit Rails 2.3.3, in der Rails-Protokoll dauert die Anforderung ~0.023

Mein Server ist auf GoDaddy, so dass ich ihre Homepage mit Firebug überprüft auch die "Warten auf reqponse" Zeit für ihre Seite ist ~ 0,320

Im schlimmsten Fall sollten es etwa 0,4 sein... wo habe ich also die anderen 0,8 Sekunden verloren?

Was kann ich noch überprüfen?

Edita:

Es scheint, als hätte es nichts mit Schienen zu tun. Eine Bildanforderung (die nur vom Apache beantwortet wird und die Rails gar nicht betrifft) dauert ebenfalls ~1,2 Sekunden

1voto

shadit Punkte 2516

GoDaddy hat möglicherweise einen Reverse-Proxy zwischen Ihnen und Ihrem HTTP-Server.

Es kann sein, dass sie Ihnen die Kopfzeilen der Antwort sofort senden und Ihnen dann möglicherweise den Inhalt der Antwort aus dem Cache zur Verfügung stellen.

Vom Standpunkt Ihres HTTP-Servers aus gesehen wird die Antwort also übermittelt. Dann geht sie an den Reverse-Proxy von GoDaddy und schließlich an Ihren Webbrowser.

0voto

Agent_9191 Punkte 7106

Der Ort, an dem Ihre Dateien bei GoDaddy gehostet werden, ist nicht derselbe wie der Ort, an dem ihre Homepage gehostet wird.

Haben Sie andere Seiten überprüft, die Sie auf demselben Server gehostet haben? Möglicherweise aufgrund von Datenbankverbindungen oder "langsamen" Verbindungen, die dazu führen können, dass die Seite eine Weile braucht, bevor sie an den Client zurückgeschickt wird.

0voto

Mato Punkte 820

Versuchen Sie, die PassengerPoolIdleTime in Ihrer Server- oder VHosts-Konfiguration auf 0 zu setzen. Vielleicht fährt Ihr Server die Anwendungsinstanzen zu schnell herunter und legt bei jeder Anfrage eine neue Instanz an, was normalerweise ziemlich lange dauert.

Weitere Informationen zu dieser Einstellung finden Sie in der Dokumentation: http://modrails.com/documentation/Users%20guide%20Apache.html#PassengerPoolIdleTime

0voto

bstiles Punkte 31

Das klingt nicht so, als ob es Ihr Problem wäre, sondern das des Internetanbieters.

Können Sie ein wget zu einer internen ip/Port zu Ihrem Rails app direkt (oder Apache) vom gleichen Server tun? Das wird Ihnen sagen, ob das Probaby in der App-Stack oder weiter stromaufwärts ist.

Wenn Sie können, können Sie Apache-Tool, genannt ab "Apache Benchmark" zu helfen.

Der Schlüssel dazu ist ein ssh-Zugang zu Ihrem Computer.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X