1. ) Dein Space ist viel zu teuer.
Ich weiß nicht ob dir der Name etwas sagt, aber ich hatte selbst mal ein mehr als gut ausgelastetes VMS auf www.quick-lose.de laufen (ist nicht mehr, also brauch keiner den Link aufrufen^^). In Anfangszeiten waren tw. mehr als 200 User gleichzeitig online (über 1000 angemeldet gewesen) und es wurden an einigen Tagen mehr Klicks gemacht, als zeitgleich auf Klammgeil.de - und da war die KG-Welt noch in Ordnung (um eine Zahl zu nennen: zwischen 100K und 150K Klicks).
Bezahlen tue ich für den Space immer noch (10GB inkl. 3 Domains) 7.95€
2.) Was Optimierung des Grundscripts angeht: Da geht noch viel viel mehr, als nur ein bißchen. Allerdings nur, wenn man selbst Ahnung von PHP&Co. hat. Ansich ist es aber auch nicht wirklich nötig, da es bereits jetzt schon einen sehr guten Standard an Optimierung hat. Zwischen dem VMS und z.B. vergleichsweise dem FWX liegen Welten (und damit meine ich, das das FWX um Längen den Kürzeren zieht). Und es ist schließlich auch so, das weitere Optimierungen tiefe Eingriffe ins VMS nach sich ziehen würden, die den Verlust der Kompatibilität zu tieferen Versionen und auch beinahe allen Addons mit sich bringen würden.
Wen es trotzdem interessiert, mal ein paar kleine Beispiele :
- create_code() entfernen, dafür auto_increment bei Buchungs-IDs
- Diese überlangen TANS weg, dafür ebenfalls integer mit auto_increment. Überhaupt sollte man einen integer-Wert, wenn möglich immer einem String vorziehen. Kann man z.B. auch mit Sponsoren-IDs, Werbearten usw. praktizieren. Eine Suche 1 oder 2 verursacht weniger "Last" als eine Suche nach forcedbanner oder highforcedbanner und geht vor Allem schneller
- IPS lassen sich ebenfalls als integer speichern (ip2long etc.) Verursacht zwar mehr Last beim Schreiben, spart aber mit richtigem Index extrem beim Suchen
- Allgemeine Codeoptimierung. Da hakts an vielen Stellen mit der Syntax oder den Wenn-Sonst-Dann Reihenfolgen (die am häufigsten zutreffenden Bedingungen sollten an erster Stelle stehen)
- getrennte Reload- und Kampagnentabellen für jede Werbeart
Sind aber nur ein paar Ansätze, die wie gesagt nicht unbedingt nötig und wohl eher für Bastelfreaks interessant sind.
3.) Wie das beim VMS so ist, hast du bestimmt Addons und Games eingebaut. Ich gehe jede Wette ein, das das faule Ei da irgendwo versteckt ist. Am Häufigsten wird sowas verursacht durch :
- zu volle Tabellen : hunderttausende Gamelogs /Reloads etc.
- sogenannte Blätterfunktionen, d.h. blätterbare Buchungslisten, oder wie es bei mir der Fall war : ein schlechtprogrammiertes Shoutbox-Archiv mit über 60K Text-Einträgen inkl. "Seite vor/zurück Funktion"
- autom. Refreshs von Seiteninhalten (Shoutbox, WiO)
- Schlecht programmierte Games. Viele Spiele sind der letzte Schrott.
- Bannersortierungen : Wird tw. exzessiv genutzt. Zum Einen ist die Sortierung selbst eine Art "Last", zum Anderen kann man ja so 25 Banner klicken - neu sortieren - wieder 25 banner klicken usw...., ohne auch nur einmal die Tabs schliessen zu müssen.
- etliche Addons und Ralleys für Klicks und Spiele. jedes mit eigener Funktion und eigenen Queries, statt alles in einem UPDATE der vms_kontodaten zusammenzufassen
- Ralley-übersichten, Ranglisten, Buchungslisten usw., die im Sekundentakt von vielen Usern aktualisiert werden. Cachen hilft!
- Automailer
-*ein dickes Ding fällt mir gerade noch ein : Ländercodes! Hab es letztens erst bei jemandem gesehen. Bei jedem einzelnen klick wurde die IP geprüft. Da ca. 80K Einträge in den Ländercodes sind ist das ziemlich heftig. Eine mögliche Lösung wäre (wenn man nur D, CH & AU zulassen möchte) : Alle Einträge ausser DE, CH und AU löschen und dann nur prüfen, ob die IP zugelassen ist. Wenn nicht, dann eben nicht. Oder aber : Die IP einmalig beim Betreten des Klickbereichs prüfen, bevor Banner zum Klicken angezeigt werden (kann allerdings unter Umständen umgangen werden). Kann man natürlich weiter absichern, indem man es schon bei der Anmeldung prüft, so das sich Chinesen-IPs erst gar nicht anmelden können, ist aber trotzdem nicht unfehlbar (Auf den Kopf gefallen sind die Jungs schließlich auch nicht^^)
Möglichkeit 3 : Weiterhin in den klicks prüfen, aber dann nur nach Zufallsprinzip, z.B. nur bei jedem 100. Klick. Wird eine nicht gewünschte IP festgestellt, vorläufige Sperrung des Klickbereichs.
Egal, wie man hier verfährt, sollte das auf jeden Fall auch in den AGBs festgehalten werden und auch bei Anmeldung und im Klickbereich mit einem deutlich sichtbaren Hinweis versehen sein!
4.) Dein Hoster hat entweder selbst keine Ahnung, oder ist arbeitsfaul
Um noch einmal das in 3. genannte Beispiel mit dem SB-Archiv aufzugreifen :
Ich hatte bei mir knapp 60K, z.T. seitenlange, "Volltext"-Einträge in der DB. Jeder User konnte ohne jede Einschränkung in diesen Einträgen rumblättern, wie er gerade lustig war (z.B. 5 Seiten weiter, zur nächsten, oder zur letzten Seite springen). Das das irgendwann zuviel wird, hätte mir eigentlich klar sein müssen, aber da es soooo lange gut ging......^^
Irgendwann kam eine eMail von meinem Hoster. Und es wurde nicht einfach der Space gesperrt. Im Gegenteil. Es wurde mir genau aufgelistet, an welcher Stelle in meinem Script die Serverlast verursacht wurde. Die Shoutbox (und zwar NUR die Shoutbox!) wurde vom Hoster selbst direkt deaktiviert, indem die CHMODs der SB-Dateien auf 000 gesetzt wurden. Alles andere lief weiterhin einwandfrei. Gleichzeitig kamen einige Tips zur Behebung inkl. dem Hinweis, wie ich Shoutbox nach Behebung wieder in Betrieb nehme. Das Ganze wie gesagt für keine 8€ im Monat.
Frag deinen Hoster doch mal, welche Queries den Server lahmlegen. Das sollte er dir wohl mindestens sagen können. Fordere ggf. auführliche Benutzerstatistken an (inkl. Screens der Gesamt-Serverauslastung, auf denen erkennbar ist, wieviel davon du verursachst).
5.) Such dir einen neuen Hoster! Ist leider schwer, einen guten zu finden. Aber wer nicht sucht, der findet auch nicht^^