Hallo,
Zuerst ein paar Hintergrundinformationen:
Seit einigen Jahren betreue ich ein Anmeldesystem für ein Institut einer Universität. Jeweils zu Beginn des Semester melden sich hunderte von Studenten über dieses System nach dem Prinzip first-come-first-serve für diverse Veranstaltungen an.
Bei jeder Anmeldung werden bestimmte Sicherheitschecks durchgeführt, ca. eine Handvoll, um festzustellen, dass sich der jeweilige Student auch tatsächlich für den gewählten Kurs anmelden darf/kann.
Bisher hatten wir immer Kapazitätsprobleme zu Beginn der Anmeldephase, da der Server nach meinen Kenntnissen nur 300 Anfragen zeitgleich bearbeiten kann - es aber auf Grund der Studentenzahlen deutlich mehr Anfragen sind (im Schnitt kann man sagen, nach Ablauf der Anmeldephase liegen über 4.000 Anmeldungen zu Kursen und nochmal ca. 1.200 Eintragungen auf einer Warteliste vor).
Sobald wir bisher also eine Hochzeit der Anmeldung durchlebt haben, brach der Server regelmäßig zusammen, d.h. er wurde langsamer und reagierte teilweise minutenlang nicht mehr.
Um diesem Problem endgültig zu begnen, würde ich gerne ein paar Erfahrungen eurerseits mit ähnlich großen Projekten wissen.
Was ließe sich tun, um die Kapazität optimaler zu nutzen und damit die beschriebenen Serverprobleme in den Griff zu bekommen?
Eine Sache, was ich bisher immer wieder versucht habe, ist interne PHP-Anfragen und SQL-Anfragen an die Datenbank zu bündeln, also statt 10 einzelner SQL-Anfragen eben max. 2 etc.
Ansonsten ist das Programm letztlich ziemlich "einfach" gestrickt, aber aufgrund der Masse an Leute, die in kurzer Zeit darauf zugreifen, zwingt es den Server eben in die Knie...
Grüße,
Michael