Hi,
ich weiß, dass es hier viele Beiträge zum Thema Perfomance gibt und ich habe schon einen ganzen Haufen von denen gelesen aber nirgends alle Infos gefunden, die ich gerne lesen würde. Deshalb mache ich mal einen neuen Beitrag auf und hoffe nicht gesteinigt zu werden. :-)
Vielleicht hier eine kleine Vorgeschichte zu meiner Frage:
Wir (2-Mann-Entwicklerteam) basteln seit Jahren in unserer Freizeit an unserem online Fussballmanager und hatten im Laufe der Zeit immer wieder mal mit Performanceproblemen zu kämpfen, die wir früher oder später in den Griff bekommen haben. So haben wir z.B. zu den Anfangszeiten unseres Games, als es noch kaum User hatte, diverse "mächtige" SQL-Abfragen eingebaut, die bei wenigen Spielern und entsprechend wenig Daten in der DB (MySQL 5) relativ gut liefen, aber mit der Zeit zu ordentlichen Problemen führten. Wir haben mittlerweile unseren Code nach solchen Perfomancen-Fressern durchforstet und vieles optimiert, was auch sichtlich zum Performancegewinn führte. Trotzdem kommen wir wieder zu Stoßzeiten, zu denen 400+ User gleichzeitig online sind an die Grenzen und die Seite antwortet sichtlich langsamer.
Unsere Serverumgebung besteht aktuell aus 2 Servern. 1 Webserver (mit Apache 2.2.4;Win2k3 Server; AMD X2 5200+;4 GB RAM) und 1 Datenbankserver (MySQL 5; Win2k3 Server 64bit; Core2Quad 2,5;8GB RAM). Wenn ich mir zu den Stoßzeiten die Auslastung der Server angucke, dann ist da eigentlich noch einige Luft nach oben (CPU im Schnitt bei 50%; RAM bei ca. 60-70%). Dabei setzen wir PHP für die Webseite und eine GameEngine (VB6 - duck weg) auf dem Datenbankserver zur Spielberechnung & Co. ein.
Die eigentliche(n) Frage(n):
Jetzt stelle ich mir die Frage, was eure Erfahrung sind? Wie viel User gleichzeitig verkraften eure Server (mit welcher Hardware)? Würdet ihr sagen, dass bei unserer Umgebung eine Userzahl von rund 400-500 online Usern wirklich das Ende der Fahnenstange ist, oder meint ihr eher, dass wir scheinbar immer noch eine zu perfomancefressende Programmierung anwenden?
Habt ihr vielleicht auch noch Tipps parat (z.B. Analysetools)? Bin für jede konstruktive Antwort dankbar.
Des Weiteren würde mich auch eure Erfahrung mit Clustern/Load Balancing (Datenbank und Webserver) interessieren (z.B. mit welchem Perfomancegewinn ist zu rechen? welche Probleme können auftreten...)? In diesem Bereich bin ich noch ein totaler Newbie. Ist es sehr kompliziert in das Thema einzusteigen bzw. es einzuführen?