ich habe keine Ahnung wie du auf so etwas kommst
Weil kein Unix-Admin eine solche Verzeichnisstruktur anlegen würde.
Aber gut, wenn die Server gemietet sind, erklärt sich das.
Für Wurzelimperium arbeiten 2 Server einer davon ist ein Quadcore mit 4G Speicher. Das nur so damit ihr nicht glaubt wir würden hier am falschen Ende sparen.
Das hat aber rein gar nichts zu sagen.
Als Webserver würde ein Pentium III-500 reichen.
Ich will Dich nicht belehren, aber zur Sicherheit:
Ein Webserver bekommt eine Anfrage von einem Client (also einem Spieler).
Der Server verarbeitet den Request (aufbereiten der Webseiten, Datenbankabfragen etc) und liefert die Seiten dann aus.
Jetzt nehmen wir mal an, dass ein kompletter Request 0.01 Sekunden dauert von der Anfrage bis zur vollständigen Auslieferung.
Danach wird die Verbindung zum Client geschlossen.
Nun hast Du hier in diesem Spiel eine Webseite, die mitunter, sagen wir mal, 230 Objekte anfordert.
Selbstverständlich werden nicht alle Grafiken jedesmal geladen, aber jedes Objekt erzeugt eine Anfrage.
Ein kompletter Webseitenaufbau dauert dann, sagen wir mal, 2,3 Sekunden.
Das ist aber nicht der Punkt, der Webserver kann nur (je nach Konfiguration) sagen wir mal 500 Anfragen gleichzeitig verarbeiten.
Das heisst, wenn exakt zum gleichen Zeitpunkt 2 User einen kompletten reload der Seite machen, hat der Dritte mitunter schon ein Problem.
Natürlich gibts da fehlersichere Funktionen, so dass tatsächlich erst der 30. oder 40. User wirklich eine Fehlermeldung bekommt.
Das bezieht sich jetzt auf einen kompletten Reload.
Wenn nun einer beginnt zu pflanzen, dann klickt der sich durch den Garten und erzeugt 12x17 == 204 Anfragen beim Server.
Danach fängt er an zu giessen und erzeugt nochmal 204 Anfragen beim Server.
Das sind 408 Anfragen in .... sagen wir mal 30 Sekunden.
Pro Benutzer.
Und in den Abendstunden, wo fast jeder aktiv ist, sind das dann, sagen wir mal, 2.000 (von aktuell 2500) User die sowas machen.
2.000 x 408 == 816.000 Anfragen, der Server kann zeitgleich 500 Anfragen bewältigen, ganz egal was der für eine CPU hat oder wieviel Ram der hat.
Es kann wohl sein, dass der Server auf 1.000 Anfragen konfiguriert ist, das ist aber eher ungewöhnlich, denn hier hat der liebe Gott des Personal Computers eine Grenze an maximal möglichen Verbindungen auf dem TCP Stack gesetzt.
Hättest Du jetzt gesagt, Ihr habt da eine Sun E10.000 für ne Mio stehen, würde ich sagen, das darf nicht passieren.
Da Du sagst, Ihr habt einen PC als Server da stehen, ist das ganz klar, dass das so passiert.
Das soll nicht abwertend sein, ich sage nur, wie es ist und hoffe, Euch vor weiteren Fehlern zu bewahren.
Das Spiel ist schön, die Idee ist schön und es ist schön umgesetzt.
Nur für so viele Spieler reicht ein einziger Webserver nicht aus.
Das der Datenbankserver ausgelagert zu sein scheint (vermute ich, wenn Du schreibst, dass Ihr 2 Server habt, aber immer nur der s1 angesprochen wird) ist schonmal der richtige Weg.
Aber es gibt meiner Meinung nach nur 2 Lösungen.
Kein Ajax => damit ist das Spiel in der Form aber nicht mehr spielbar. Fällt also aus.
Loadbalancing mittels eines Webserverclusters => kostet weitere Server, kostet unwesentliche Umprogrammierarbeit.
Mach einfach mittels Zufallsgenerators bei den Links statt s1 von s1 bis sX und baue die Webserver identisch auf.
Ein gemeinsamer NFS Mount und es sollte funzen.
Anders sehe ich da keine Möglichkeit, das Spiel zum rundlaufen zu bewegen, vor allem nicht, wenn die Tage nochmal 1.000 Spieler oder so mehr kommen.
Das ist jetzt nur meine unwesentliche Meinung - Ihr macht das schon.
Ich hätte lediglich nicht damit gerechnet, dass solch ein Fehler passiert, denn mir ist klar, was solch ein Spiel an Serveranfragen generiert.