Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.37 veröffentlicht (04.11.23)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Spicefuse Shoutbox zieht zu viel Performance
#11
Wenn du MySQL derart auslastest, kann man kaum mehr etwas tun...
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#12
Man kann mit Apache / PHP / MySQL keinen effizienten Chat realisieren. Jede Shoutbox die so ausgelegt ist wird dir Probleme bereiten. Diese Shoutboxen müssen in sehr kurzen Intervallen (1 Sekunde) einen Request an den Server schicken um herauszufinden ob es eine neue Meldung gibt, bei 10 Usern bedeutet das dann durchgängig 10 Requests pro Sekunde (wenn die User mehrere Tabs offen haben auch entsprechend mehr). Wenn das dann über PHP und noch schlimmer, über MyBB läuft, hast du für jeden Request auch noch zig Queries anhängig (Session, usw. und letztendlich wohl auch die Shoutbox-Abfrage wenn die Shoutbox die Meldungen in der DB speichert). Das bricht dann alles sehr schnell zusammen... selbst auf einem Dedi kommst du da mit dreistelligen Userzahlen nicht mehr klar.

Chats an sich sind trivial, gibts ja schon seit über 20 Jahren (IRC) auf deutlich schwächerer Hardware mit deutlich höheren Userzahlen. Das Problem ist daß Browser und Webserver darauf einfach überhaupt nicht ausgelegt sind, so ist es z.B. immer noch nicht möglich einfach eine feste Verbindung aufzubauen und diese zur bidirektionalen Kommunikation mit dem Client dauerhaft offen zu lassen.

Diese Möglichkeit soll in naher Zukunft kommen (WebSocket), aber das ist noch unausgereift und wird von nur wenigen Browsern unterstützt.

Die effizienteste Möglichkeit für einen Chat ist derzeit, den Browser einen Request schicken zu lassen, und den Webserver mit der Antwort so lange warten zu lassen, bis tatsächlich eine neue Meldung reinkommt. Aber da macht Apache / PHP nicht mit, da brauchst du einen Webserver der Requests vollständig asynchron behandeln kann. nginx kann das z.B. http://pushmodule.slact.net/

Ich bastle derzeit ein Chat-Plugin das mit nginx/Python als externen Chatserver redet, leider gibts da einige Hürden zu überwinden (aus Sicherheitsgründen darf man z.B. nicht einfach so einen AJAX-Request an einen fremden Server schicken), und JavaScript ist leider mit eine der frustrierendsten Programmiersprachen überhaupt, da es sich in jedem Browser anders verhält. Aber selbst wenn ich damit fertig werde ist das immer noch kein effizienter Chat sondern etwas das dann halt mit ein paar weniger Requests (und ohne Datenbank) auskommt...
Zitieren
#13
Also gibt es keine andere Möglichkeit als die Shoutbox abzuschalten oder tatsächlich auf dieses phpbb oder wie das heißt zu wechseln wo die shout schon integriert ist ? Sad
Zitieren
#14
Du wirst mit jeder Shoutbox die gleichen Probleme haben...
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#15
Die andere Möglichkeit ist, das Ding eben nicht über Apache/PHP/SQL laufen zu lassen, sondern separat, mit einer Lösung die serverseitig keine (nennenswerte) Last mehr verursacht.

Das setzt aber voraus, einerseits einen eigenen Server, und andererseits daß es da eine fertige Softwarelösung gibt und du auch in der Lage bist diese auf deinem Server aufzusetzen.

Zumindest mit MyBB Integration gibt es da noch keine fertigen Lösungen.
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
Star Spicefuse Ajax Shoutbox verursacht Serverlast Paccy 2 1.564 10.01.2014, 11:52
Letzter Beitrag: Paccy
  Nicht sichtbar im Form spicefuse-ajax-shoutbox Häkel-Hexe 14 5.765 15.12.2011, 22:58
Letzter Beitrag: SunnyDays
  SpiceFuse Shoutbox Problem iLoWa 5 3.129 15.01.2010, 13:41
Letzter Beitrag: iLoWa
Wink SpiceFuse AJAX ShoutBox - Problem mit Ausrichtung & Breite! Selman 2 2.080 04.06.2009, 19:49
Letzter Beitrag: Selman
  SpiceFuse AJAX ShoutBox 1.1 / DeRef problemkind 0 1.878 20.01.2009, 16:55
Letzter Beitrag: problemkind