Ich habe eine Website, die alle 5 oder 10 Anfragen einfriert. Wenn sie funktioniert, funktioniert sie schnell, aber wenn Sie den Browser ein paar Minuten lang ruhen lassen und dann auf einen Link klicken, friert er einfach ein und reagiert nicht mehr. Der Benutzer muss im Browser ein paar Mal auf „Aktualisieren“ klicken, und dann läuft er wieder schnell.
Ich verwende .NET 3.5, ASP.NET MVC 1.0 auf IIS 7.0 (Windows Server 2008). Die Webanwendung stellt eine Verbindung zu einer SQLServer 2005-Datenbank her, die lokal auf derselben Instanz ausgeführt wird. Die Datenbank verfügt über etwa 300 MB RAM und der Rest ist vermutlich für Webanforderungen frei.
Es wird auf den Cloud-Servern von GoGrid gehostet und diese Instanz verfügt über 1 GB RAM und 1 Core. Mir ist klar, dass das nicht viel ist, aber derzeit bin ich der Einzige, der die Site nutzt, und trotzdem kommt es bei mir immer noch zu solchen Hängern.
Ich weiß, dass die Fehlerbehebung schwierig ist, aber ich hatte gehofft, dass mir jemand Hinweise zu möglichen IIS-Konfigurationsproblemen geben könnte oder mir sagen könnte, wie hoch die „ungefähren“ durchschnittlichen Hardwareanforderungen bei Verwendung dieser Technologien pro 1000 Benutzer usw. wären. Vielleicht sollte ich für einen Webserver mindestens 2 Kerne haben, damit man auch dann noch eine Antwort bekommt, wenn er ausgelastet ist. Oder vielleicht haben die Leute von Slashdot recht und ich bin ein Idiot, weil ich Windows benutze, Punkt, lol. Meiner Erfahrung nach liegt es jedoch normalerweise an MEINEM Algorithmus-/Konfigurationsfehler und nicht an der zugrunde liegenden Technologie.
Alle Erkenntnisse sind willkommen.
Antwort1
Haben Sie versucht, die App auf einem echten Server auszuführen, um zu sehen, ob sie dort hängt? Ich würde eher die „Cloud“-Computing-Plattform in Verdacht nehmen, als zu denken, dass Ihre App oder das Betriebssystem ein Problem darstellt. Warum sagen Sie, dass SQL 300 MB RAM hat? Wird das verwendet? In Ihren Spezifikationen steht, dass Sie einen Server mit 1 GB RAM haben.
Antwort2
Wie Jim B anmerkte, hätten Sie vor der Bereitstellung in Ihrem Labor testen sollen. Überprüfen Sie Folgendes
IIS – Stellen Sie sicher, dass die App über einen eigenen Anwendungsprozessbereich verfügt.
Überprüfen Sie Ihren Sitzungsstatus in asp.net.
Überprüfen Sie die Verbindung zwischen der App (IIS) und der Datenbank. Möglicherweise wird die Cloud-Verbindung unterbrochen.
Können Sie die Ereignisprotokolle von IIS sehen? Schauen Sie sie sich an.
Antwort3
Aus den bereitgestellten Informationen geht hervor, dass das wahrscheinlichste Problem der einzelne Kern der VM ist, da Sie den Webserver und die Datenbank auf dem System ausführen. Wenn Ihr Hosting-Unternehmen das Hinzufügen/Entfernen von Kernen zulässt, fügen Sie den zweiten Kern hinzu und überprüfen Sie Ihre Leistung erneut.