PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : HTTP Request dauert lange


Ben Carter
2015-12-23, 10:21:31
Hallo,
ich habe ein interessantes Problem. Bei einer Websoftware dauert man ein Aufruf sehr lange (~8 Sekunden), selbst wenn die Seite lokal am Webserver (IIS) aufgerufen wird. Es wird zwar knapp ein Megabyte übertragen, aber daran sollte es nicht liegen, vor allem bei einem lokalen Aufruf.

Ich hab mir das ganze mal mit Fiddler2 angesehen und folgendes bekommen:

Request Count: 1
Bytes Sent: 2,087 (headers:2,087; body:0)
Bytes Received: 928,377 (headers:404; body:927,973)

ACTUAL PERFORMANCE
--------------
ClientConnected: 09:29:59.711
ClientBeginRequest: 09:30:07.939
GotRequestHeaders: 09:30:07.939
ClientDoneRequest: 09:30:07.939
Determine Gateway: 0ms
DNS Lookup: 0ms
TCP/IP Connect: 30ms
HTTPS Handshake: 0ms
ServerConnected: 09:30:07.971
FiddlerBeginRequest: 09:30:07.971
ServerGotRequest: 09:30:07.971
ServerBeginResponse: 09:30:15.521
GotResponseHeaders: 09:30:15.521
ServerDoneResponse: 09:30:16.504
ClientBeginResponse: 09:30:16.504
ClientDoneResponse: 09:30:16.504

Overall Elapsed: 0:00:08.564

RESPONSE BYTES (by Content-Type)
--------------
text/html: 927,973
~headers~: 404

Also zwischen ClientConnected und ClientBeginRequest vergeht die gesuchte Zeit. Leider weiß ich nicht wirklich, was genau hier passiert. Kann mir da jemand irgendwelche Hinweise geben?

Danke,
lg Ben

EDIT: Vor lauter Bäume den Wald nicht mehr gesehen, die Zeit geht ja wo anders verloren. Das am Anfang passt. Somit ist die Anfrage hinfällig....

Trunk
2015-12-23, 10:45:45
Sieht aus, als wäre der Server etwas Langsam mit den Verbindungen...

Tipp: Wireshark https://www.wireshark.org/
Damit kann man den Netzwerkverkehr auf Paket-Ebene aufzeichnen und analysieren.

Ben Carter
2015-12-23, 12:01:12
Danke. Tatsächlich scheint die Kommunikation mit dem SQL Server etwas träge zu sein. Ich schau mir das Tool mal an.

lg Ben

RattuS
2015-12-23, 20:46:18
ServerGotRequest: 09:30:07.971
ServerBeginResponse: 09:30:15.521
GotResponseHeaders: 09:30:15.521
ServerDoneResponse: 09:30:16.504

Du hast hier 8 Sekunden TTFB (https://en.wikipedia.org/wiki/Time_To_First_Byte) und eine Sekunde Transfer. Das Problem ist also der Server, nicht die Verbindung. (Fiddler Timers (http://fiddler.wikidot.com/timers))

Wireshark hilft dir hier nicht, weil es kein Verbindungs- oder Übertragungsproblem ist. Check lieber mal, was dein Request auf dem Server auslöst.

Ben Carter
2015-12-25, 18:09:33
Tatsächlich war/ist die Kommunikation IIS/SQL-Server das Problem. Ein SQL-Request braucht einfach viel zu lange, egal wie einfach oder komplex es ist. Wenn ich die Datenbank auf den Rechner mit IIS kopiere, dann geht's auch fix. Aber Infrastruktur ist zum Glück nicht mein Problem, da dürfen nun andere Leute sehen, warum ein simples SQL-Statement mit einem Recordset als Antwort 0,5 Sekunden braucht...

Trotzdem danke!

lg Ben