Joshua schrieb:
Nabend,
ich würde gern einen Server mit Apache 1.3, PHP4 und mySQL aufsetzen. Also eigentlich nix besonderes, der Knackpunkt ist nur, dass in Spitzenzeiten etwa 3000 bis 4000 User gleichzeitig darauf zugreifen sollen (d.h. es soll nur eine einzige Datenbank drauf und alle greifen auf diese eine Datenbank zu).
Weiter unten schreibst Du, dass es sich um Schüler handelt. Ich vermute also, dass das mit einer Schule oder einer entsprechenden Organisation zusammenhängt, die insgesamt rund 4000 Schüler hat.
Da kannst Du davon ausgehen, dass dort *keine* 4000 Nutzer gleichzeitig drauf zugreifen. Nie!
4000 wirklich gleichzeitige Zugriffe (also 4000 Seitenabfrufe pro Sekunde) haben noch nicht mal die ganz großen. Nehme nur mal 1000 pro Sekunde, das sind 3,6 Millionen Seitenabrufe pro Stunde, und wenn Du das auf einen Monat hochrechnest ...
Zum Vergleich: Spiegel Online oder Heise Online haben nur einen Bruchteil davon, nämlich 140 und 300 Millionen, Rekordhalter ist T-Online mit 1,7 Milliarden, weil jeder Depp das mit seinem T-Online-Account als Startseite bekommt:
http://ivwonline.de/ausweisung2/suchen.php
Ich nehme an, dass Ihr rund 4000 Schüler habt. Wenn es gut läuft (!) habt Ihr dann einen Seitenabruf pro Sekunde (dazu kommen natürlich noch Bilder, CSS usw) -- das ist schon viel, aber wenn die dynamischen Seiten nicht ganz schlecht gemacht oder extrem aufwändig sind kein Problem. Aber: ohne die Applikation zu testen kriegst Du das nicht raus. Die typische dynamische Seite sollte in 100 Millisekunden generiert sein.
Tipp: mehr RAM im Server hilft meist mehr als ein schnellerer Prozessor!
Ansonsten, zu PHP/MySQL: Vorsicht, diese Kombination ist oftmals ein Hinweis auf langsame Software. Oder anders gesagt: wer sich nicht sehr gut mit MySQL auskennt, dem fliegt das schnell um die Ohren wenn etwas größeres gemacht wird (ich sag nur: MyISAM, Datenintegrität). PostgreSQL ist da deutlich genügsamer und bietet -- wenn man sich denn auch mal tiefer auskennen will -- viele erweiterte Features.
Ich bin auch kein PHP-Fan sondern arbeite mit Perl/mod_perl und echten Apache-Handlern -- wenn es wirklich auf Performance ankommt bringt das viel. Aber das ist auch viel Geschmackssache.
Letztendlich ist der Teil, an dem Du zuerst ansetzen solltest, die Software. Wenn die ohne entsprechenden Aufwand nicht mehr weiter optimiert werden kann, dann kann man auch dickere Hardware hinstellen -- was das Problem aber auch nur verschiebt.
Bei einem größeren Projekt sollte man sich *immer* ganz genau überlegen, wie man was implementiert. Irgendwas schnell mit PHP/MySQL hinzuhacken kann man sich ja noch für die Sachen aufheben, die einfach so vom Himmel gefallen kommen und wo man sich nichts dabei denkt ;-)
Ciao
Alvar