Seite 1 von 9

Diskussion zu Lastprobleme - phpBB.de wächst

Verfasst: 08.09.2004 10:00
von itst
Hier könnt ihr eure Meinung zu Lastprobleme - phpBB.de wächst abgeben.
Es macht riesigen Spaß, phpBB.de wachsen zu sehen. Wir sind mittlerweile bei über 550 neuen Beiträgen pro Tag angekommen und verzeichnen einen Mitgliederzuwachs von 730 pro Monat.

Auch in Hits gemessen wächst phpBB.de - seit Anfang des Jahres haben sich die Zugriffszahlen (inkl. Traffic) verdoppelt - Wahnsinn :D

Allerdings hat dieses schnelle Wachstum auch einen Nachteil. Wir Ihr sicher schon bemerkt habt, verzeichnen wir über den Tag verteilt immer wieder Lastspitzen, die den MySql-Server in die Knie zwingen. Technisch gesehen liegt das an langsamen DB-Abfragen, die Verbindungen zum MySql-Server verstopfen. Das führt dazu, der MySql-Server irgendwann eine bestimmte Anzahl von offenen Verbindungen zählt und sagt "So, jetzt isses genug. Ich nehme keine neuen Verbindungen mehr an." Und schon kommt die allseitsbeliebte Fehlermeldung "Too many connections."

Was kann man dagegen tun?

Dickeren Server kaufen. Wäre eine Möglichkeit. Jedoch würden wir damit nur die Symptome bekämpfen, nicht die Ursachen beseitigen.

MySql auf einen extra Server auslagern. Siehe oben ;)

Eine andere Datenbank benutzen. Bitte keinen Glaubenskrieg. MySql ist das DBMS, mit dem wir die meisten Erfahrungen haben (von Tamino mal abgesehen) und von dem wir am besten wissen, was wir wo drehen müssen.

phpBB ist schuld - benutzen wir also ein anderes Forum. Just kidding :D phpBB ist nicht wirklich schuld. Bis auf die Suche und die Jumpbox (und um die habe ich mich bereits gekümmert) ist phpBB ziemlich performant.

Woran liegts denn dann?! An den installierten Extras. Zum einen ist da die Karte - die ich bis auf weiteres deaktiviert habe. Die Karte wurde einfach nicht für über 1500 Benutzer-Datensätze (über 1500 Mitglieder nutzen die Karte) gemacht. Sie wird bei jedem Aufruf volldynamisch neu erstellt, ist zoombar, verschiebbar und weiß der Geier was noch alles. Die Datenbankabfrage, mit der die Benutzerdaten abgeholt werden läuft im wahrsten Sinne des Wortes ewig - und blockiert so wertvolle Verbindungen zum MySql-Server. Selbst in lastarmen Zeiten (morgens zwischen 4 und 5) braucht die Karte zwei bis drei Sekunden zur Fertigstellung.
Bis ich einen Weg gefunden habe, die Karte schneller zu generieren, bleibt sie leider deaktiviert.

Dann wäre da noch das RDF. Das Ding ist zu einem großen Teil auf meinem Mist gewachsen - und auch hier muss ich sagen, das ich es nicht für 1300 Aufrufe pro Tag (das ist fast ein Aufruf pro Minute) geschrieben habe. Das RDF ist ebenfalls hochdynamisch und vom Benutzer sehr stark steuerbar: Anzahl der Posts, Foren, mit oder ohne Text, Formatierungsmöglichkeiten und und und.
Auch hier habe ich die Reißleine gezogen und das RDF abgespeckt. In Zuklunft wird phpBB.de zwei RDF anbieten: ein RDF über das Ankündigungsforum und eines mit neuen Themen. Beide werden nicht mehr dynamisch erstellt, sondern nur noch alle vier Stunden bzw. alle 30 Minuten. Aus meiner Erfahung mit eRONA und ihren Nutzern heraus kann ich sagen, das dies ein guter Rhythmus ist.

Hier noch die neuen URL für die RDF-Feeds:
Ankündigungsforum (News), alle 4 Stunden neu: http://www.phpbb.de/rdf/rdf-news.php
Aktuelle Themen im gesamten Forum, alle 30 Minuten neu: http://www.phpbb.de/rdf/rdf-topics.php

Wollen wir also hoffen, die diese Maßnahmen den gewünschten Effekt zeigen, drückt mir (und Euch selbst :)) die Daumen.

Verfasst: 08.09.2004 11:37
von Kiss News
Also ich habe mein Forum vor 3 Monaten angefangen und bin von den Möglichkeiten des PHP und des Forums begeistert, hätte ich mir nie gedacht, dass man soviel damit machen kann. Vorher wusste ich gar nicht, was PHP überhaupt wirklich ist bzw. sein soll, bis ich einmal ein Forum entdeckte... :roll:

Und ich hätte mir auch nie gedacht, dass ich ohne PHP Kenntnisse mein Forum doch so hinbringen werde, wie ich will, alles Dank der tollen Unterstützung hier :P

Ich sehe in letzter Zeit immer mehr Seiten in PHP und das wird sich sicher noch steigern, kann mir gut vorstellen, dass in einiger Zeit mehr Leute PHP Seiten haben als HTML... :D
Bis ich einen Weg gefunden habe, die Karte schneller zu generieren, bleibt sie leider deaktiviert.
Das würde mich auch sehr interessieren, da ich möglicherweise auch früher oder später das gleiche Problem haben könnte. Gibt es diese Verbesserung dann vielleicht als Mod?

P.S.: mein Daumen ist gedrückt :D

Verfasst: 08.09.2004 16:59
von Mafia GmbH
Naja, das kann man woll durch so viele Besucher nicht vermeiden :grin:
Und ich finde es ist ganz gut so das es sooooo viele Besucher immer wieder neu kommen.

Zwar habe ich z.Z. überhaupt keine Ahnung über PHP und so, aber ich denke es ist machbar.
Also mein Vorschlag:
Wie währe es wen PHP Forum 2 verschidene Datenbanken nutzen könnte, wo vierschidene Funktionen gleichmäsig auf die zwei Datenbanken verteilt werden. Theoretisch könte man dan doppelt so viele Zugriffe erlauben. oder?

Verfasst: 08.09.2004 18:59
von Dave
@itst
schau dir mal Categories Hierarchy an.
Du sollst nicht den Subforen mod installieren :D sondern mal nach dem Cache mod schauen der dabei ist. Da dort einiges in eine php datei geschrieben wird (Foren Struktur, User Statistiken usw) sollte das in eurem Fall schon das Forum beschleunigen :wink:
Ich hoffe mal es hilft dir nen bißchen :)

MfG
Dave

Re: Lastprobleme - phpBB.de wächst

Verfasst: 08.09.2004 21:12
von RubberDuck
itst hat geschrieben:Was kann man dagegen tun?
Erstmal die teilweise "unnützen" DB Zugriffe von PHPBB rauswerfen :-) Ne, aber Spass beiseite ....
Dickeren Server kaufen. Wäre eine Möglichkeit. Jedoch würden wir damit nur die Symptome bekämpfen, nicht die Ursachen beseitigen.
Nun wenn Du die Ursachen beseitigen willst dann bleibt es Dir nur entweder das Forum umzubauen oder die User zu kicken. Du musst also doch bei den Symtomen ansetzen.
MySql auf einen extra Server auslagern. Siehe oben ;)
Das bringt nicht viel wenn der Server kpl. extern steht. Um dadurch einen direkten Vorteil zu haben müsstest Du den MySQL Server direkt ansprechen können, also über eine 2. Netzwerkkarte direkt anbinden.
Woran liegts denn dann?! An den installierten Extras.
Wobei Du wieder bei den Ursachen wärst.
Wollen wir also hoffen, die diese Maßnahmen den gewünschten Effekt zeigen, drückt mir (und Euch selbst :)) die Daumen.
Wie gesagt, die Eierlegendewollmilchsau wird es auch hier nicht geben. Bei den Ursachen hast Du nur 2 Möglichkeiten wo Du nur schwer ansetzen kannst. Aber die Symtome lassen sich sicher gut einschränken.

Wir haben für ein anderes großes Forum mal mehrere Lösungen entworfen und umgesetzt, z.B. die Aufteilung des ganzen auf 3 Server. Das hat dann gleich mal 40% gebracht. Allerdings wie oben geschrieben waren diese dann direkt Verbunden.

Falls Hilfe gewünscht, melde Dich einfach.

Verfasst: 08.09.2004 21:17
von RubberDuck
Dave hat geschrieben:sondern mal nach dem Cache mod schauen der dabei ist. Da dort einiges in eine php datei geschrieben wird (Foren Struktur, User Statistiken usw) sollte das in eurem Fall schon das Forum beschleunigen
Caching ist zwar gut und auch erforderlich, kann aber bei großen Sachen auch eine Bremse sein, weil Du unter Umständen nicht genügend "Freie Zeit" hast um das dann alles abzuarbeiten.

Zumal das Schreiben in Dateien nicht gerade so besonders ist. Da würde sich das Verknüpfen von mehreren DBs schon mehr anbieten.

Verfasst: 08.09.2004 23:25
von Amlor
Ich glaub das für und wieder von bestimmten Sachen müssen wir hier nicht unbedingt breit treten.. es gibt immer bestimmte Punkte, mit denen man Sachen verbessern aber auch verschlimmbessern kann.. fraglich ist doch eher, was wird gebraucht und genutzt und was ist spielerei bzw überlfüssig.. letztendlich kommt es auf eine kosten/nutzen-analyse nicht drumherum...
Wenn man Sachen zwischenspeichert etc pp. hat man evt Nachteile mit der Aktualität und kann dadurch User verprellen.. lagert man die DB aus, kann es die Probleme auch evt nur verschleppen.. evt aber auch lösen.. es gibt so viele Möglichkeiten...
Ich glaube mit den oben genannten Punkte sind wir auf den richtigen Weg.. schlecht reden kann man es hinterher immernoch, wenn bewiesen worden ist, das es wirklich ein Schuss in den Ofen war.. jetzt aber mit 9mal klugen anderen Möglichkeiten kommen, die evt auf ein anderes System gut greifen und gute Effekte zeigen.. das kann jeder.. aber ob es hier hilfreich sein wird.. das steht auf einem anderen Blatt.. von daher.. lasst doch erst einmal ein paar Wochen, evt. sogar Monate verstreichen.. itst kann sich dann ja noch mal melden.. und dann können wir ihn in der Luft zerreissen (*g* würden wir nie tun :D ) oder in den Himmel loben (wird wohl eh da drauf hinaus laufen *g*)

Verfasst: 08.09.2004 23:33
von RubberDuck
Amlor hat geschrieben:jetzt aber mit 9mal klugen anderen Möglichkeiten kommen, die evt auf ein anderes System gut greifen und gute Effekte zeigen.. das kann jeder.. aber ob es hier hilfreich sein wird.. das steht auf einem anderen Blatt..
Sollte nicht "9mal Klug" sein sondern nur eine Anregung. Warum sollte man sich nicht auch andere funktionierende Konzepte mal ansehen.

Verfasst: 09.09.2004 01:54
von DaniM
Mafia GmbH hat geschrieben:Naja, das kann man woll durch so viele Besucher nicht vermeiden :grin:
Und ich finde es ist ganz gut so das es sooooo viele Besucher immer wieder neu kommen.

Zwar habe ich z.Z. überhaupt keine Ahnung über PHP und so, aber ich denke es ist machbar.
Also mein Vorschlag:
Wie währe es wen PHP Forum 2 verschidene Datenbanken nutzen könnte, wo vierschidene Funktionen gleichmäsig auf die zwei Datenbanken verteilt werden. Theoretisch könte man dan doppelt so viele Zugriffe erlauben. oder?
Das Forum läuft über 2 Server, die Suche und das Forum sind getrennt.
Kiss News hat geschrieben:Das würde mich auch sehr interessieren, da ich möglicherweise auch früher oder später das gleiche Problem haben könnte. Gibt es diese Verbesserung dann vielleicht als Mod?
Du kannst die Karte nicht bei jedem Aufruf dynamisch erstellen lassen, also nicht immer die Daten neu aus der Datenbank zu lesen.
Du kannst es ja so machen dass die Karte nur jede Woche einmal erstellt wird und gecached wird, praktisch das fertige Bild gespeichert wird, so erspart man sich diese ganzen MySQL Zugriffe.

Mit freundlichen Grüßen,
Dani

Verfasst: 09.09.2004 07:21
von PhilippK
Mafia GmbH hat geschrieben:Wie währe es wen PHP Forum 2 verschidene Datenbanken nutzen könnte, wo vierschidene Funktionen gleichmäsig auf die zwei Datenbanken verteilt werden. Theoretisch könte man dan doppelt so viele Zugriffe erlauben. oder?
Das mag bei unabhängigen Daten noch funktionieren - aber i.d.R. hängen die Tabellen immer irgendwie zusammen. Und JOINS sind über verteilte Datenbanken etwas schwieriger zu realisieren...
Entweder kostet dich das also Ressourcen, da die Datenbanken synchronisiert werden müssen oder Ressourcen, weil die Verbindungen laufend zwischen den beiden DBs gewechselt werden muss. Egal wie - ganz so erfolgsversprechend ist der Ansatz nicht.

Gruß, Philipp