8 Stimmen

Beste Methode zur Bestimmung der Anzahl der benötigten Server

Wie viel Datenverkehr kann ein Webserver bewältigen? Wie kann man am besten feststellen, ob wir das überschreiten?

Ich habe eine ASP.Net-Anwendung, die ein paar hundert Benutzer hat. Einige Aspekte davon sind ziemlich prozessorintensiv, aber bisher sind wir gut mit nur einem Server ausgekommen, auf dem sowohl SqlServer als auch die Website laufen. Es läuft Windows Server 2003, 3,4 GHz mit 3,5 GB RAM.

Aber in letzter Zeit habe ich begonnen, zu verschiedenen Zeiten zu bemerken, verlangsamt, und ich fragte mich, was ist der beste Weg, um festzustellen, ob der Server durch die Nutzung der Anwendung überlastet ist, oder wenn ich etwas tun müssen, um die Anwendung zu beheben (ich will nicht wirklich eine Menge Zeit auf der Suche nach kleinen Optimierungen zu verbringen, wenn ich nur zu viel von der Box erwarten).

7voto

Gulzar Nazim Punkte 51098

Was Sie brauchen, sind einige Informationen über Kapazitätsplanung ..

Bei der Kapazitätsplanung geht es um die Planung von Wachstum und die Vorhersage von Nutzungsspitzen, um die Kapazitätsanforderungen von Systemen und Anwendungen zu erfüllen. Dazu gehören umfangreiche Leistungstests, um die Ressourcennutzung der Anwendung und den Transaktionsdurchsatz unter Last zu ermitteln. Zunächst wird die Anzahl der Besucher der Website und die Belastung des Servers durch die einzelnen Benutzer gemessen. Anschließend werden die Computerressourcen (CPU, RAM, Festplattenspeicher und Netzwerkbandbreite) berechnet, die zur Unterstützung der aktuellen und zukünftigen Nutzungsraten erforderlich sind.

1voto

www.aegisub.net Punkte 400

Wenn Sie Zugriff auf einige Profiling-Tools haben (z. B. die in der Team Suite-Edition von Visual Studio), können Sie versuchen, einen Testserver einzurichten und einige synthetische Anfragen gegen ihn laufen zu lassen, um zu sehen, ob es einen bestimmten Teil des Codes gibt, der unangemessen lange für die Ausführung braucht. Bevor Sie dies tun, sollten Sie wahrscheinlich einige Diagramme der CPU- und Speichernutzung im Laufe der Zeit überprüfen, um zu sehen, ob dies überhaupt der Fall sein kann. (Eine Zahl, die dem UNIX-"Lastdurchschnitt" ähnelt, könnte eine nützliche Metrik sein, ich weiß nicht, ob Windows etwas Ähnliches hat. Im Grunde die durchschnittliche Anzahl von Threads, die CPU-Zeit für jede Zeitscheibe benötigen).

Vergewissern Sie sich auch, dass Ihnen die Bandbreite nicht ausgeht.

1voto

Andrei Rînea Punkte 19502

Messen, messen, messen. Das sagt Rico Mariani immer, und er hat Recht.

Messen Sie Bedarf/Sekunde, RAM, CPU, Sitzungen usw.

Sie können sich eine Caching-Strategie ausdenken (Output-Caching, Daten-Caching, Caching-Abhängigkeiten usw.).

Schauen Sie sich auch an, wie Ihr SQL Server arbeitet... Indizes sind ein guter Anfang, aber nicht das Einzige, was man sich anschauen sollte...

0voto

Portman Punkte 31245

Auf dieser Hardware sollte eine .NET-Anwendung in der Lage sein, etwa 200-400 Anfragen pro Sekunde zu bedienen. Wenn Sie nur ein paar hundert Benutzer haben, bezweifle ich, dass Sie auch nur 2 Anfragen pro Sekunde sehen, also denke ich, dass Sie eine Menge Kapazität auf diesem Rechner haben, sogar mit laufendem SQL-Server.

Ohne alle Details zu kennen, würde ich sagen keine werden Sie durch das Hinzufügen von Servern keine Leistungssteigerung feststellen.

Übrigens, wenn Sie nicht die Ausgabe-Cache würde ich dort beginnen.

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