/ / Asp.net E-Commerce-Leistung - asp.net, E-Commerce

Asp.net E-Commerce-Leistung - asp.net, E-Commerce

Ich entwickle E-Commerce-Projekt auf Asp.Net 3.5 mit C #. Ich verwende 3 Tiers (Data + Business + UI) Struktur, um die Daten aus der Datenbank zu erreichen (Msql 2005).

Es gibt gespeicherte Prozeduren und alles, was von ihnen abgeht. (CRUD-Methoden)

Es gibt ein Leistungsproblem hier, Projekt läuft so langsam. Ich konnte im Transaktionsmodell kein Problem finden.

Das Projekt läuft auch auf Shared Hosting im Ausland. Der Datenbankserver und der Webserver laufen auf verschiedenen Rechnern. Der Datenbankserver hat fast 1000 Datenbanken.

Wie kann ich testen und lernen, wo das Problem liegt?

Antworten:

5 für die Antwort № 1

Da gibt es mehr als 1000 gemeinsame DatenbankenRessourcen Ich würde einen Stich nehmen, der Ihr Problem sein könnte .... Wenn Sie eine Verbindung zu Ihrer Datenbank herstellen und es dauert 5 Sekunden, um eine einfache Abfrage auszuführen, dann können Sie das Problem erraten.

Ich würde etwas Stoppuhrfunktionalität auf a hinzufügen"Testseite", die auf Ihrem Webserver ausgeführt wird. Dies sollte Ihnen die grundlegenden Informationen geben, um zu sehen, ob es einen Flaschenhals gibt, der darauf wartet, dass die Datenbank Ihre Anfrage zurückgibt. Wenn Sie es so weit gebracht haben, würde ich vermuten, dass es Ihr Webserver sein würde.

Ihre letzte Option wäre es, ein einfaches einzurichtenLow-Spec-Maschine mit DB und Webserver drauf und einfach testen. Je nachdem, wie viel Traffic Ihre Website hat, sollten Sie in der Lage sein, eine ziemlich gute Vorstellung von der Antwortzeit zu bekommen.

Werkzeuge wie YSlow könnte auch hilfreich sein, aber diese werden normalerweise mehr für die Feinabstimmung verwendet.


1 für die Antwort № 2

Da Sie auf einem freigegebenen Hosting-Dienst ausgeführt werden, würde ich vermuten, dass Ihr Problem ist. Sie konkurrieren mit jeder anderen Website und Datenbank auf diesen Servern um Serverressourcen.

Um sicherzustellen, dass ich eine lokale Umgebung einrichten würdedas ahmt Ihre Produktionsumgebung nach. Führen Sie dann einige Standard-Stresstests durch, um zu sehen, wie es funktioniert. Wenn es so funktioniert, wie Sie es erwarten, ist es wahrscheinlich Ihre Hosting-Lösung.

Mit Shared-Hosting-Lösungen bekommen Sie wirklich, was Sie bezahlen. Wenn es ein System ist, das viel mehr Geschwindigkeit erfordert als Sie bekommen, sollten Sie sich eine dedizierte Hosting-Lösung anschauen.


1 für die Antwort № 3

Ich schlage vor, Sie schauen sich Tracing an:

http://davidhayden.com/blog/dave/archive/2005/07/17/2396.aspx

Auf diese Weise können Sie eine Stapelverfolgung (das letzte Bild im Artikel) anzeigen und Ihre Leistungsengpässe lokalisieren.


0 für die Antwort № 4

Eine schnelle Lösung, die ich entwickelte, um Protokolle zu behaltenLeistung auf meiner Web-App kann Ihnen hier helfen. Ich habe einen Webserver und einen DB-Server, auf denen eine ähnlich klingende App läuft. Ich schrieb einen Webdienst, der eine "Benchmarking" -Speicherprozedur ausführt und die Laufzeit zurückgibt. Ich schrieb eine Win-App, die auf meinem Entwicklungsserver läuft, der den Web-Service aufruft, übergibt ihm den Namen der gespeicherten Prozedur und wie lange die gesamte Anfrage dauert. Die Win App schreibt die Daten in eine Protokolldatei und wird alle 10 Minuten als geplante Aufgabe ausgeführt. Zusätzliche Extras sind automatische E-Mails an Teammitglieder, wenn die Leistung 3 Mal hintereinander den festgelegten Schwellenwert überschreitet, keine Verbindung hergestellt werden kann und nach einer langsamen Periode wieder normale Leistung erreicht wird.

Dies gibt einen allgemeinen Hinweis darauf, wie aDie Benutzererfahrung auf der Website wird zu jeder Zeit sein und dient als Warnung für das Team. Nicht die beste Lösung, aber ich habe es in ein paar Stunden vor einigen Monaten geschrieben und die Daten verwendet, die es für die Fehlersuche erstellt Zwecke viele Male.