phpbar.de logo

Mailinglisten-Archive

[php] =?iso-8859-1?Q?Chat=2D=D6konomie?=

[php] =?iso-8859-1?Q?Chat=2D=D6konomie?=

=?iso-8859-1?Q?Andr=E9?= Temme a.temme_(at)_gmx.de
Thu, 15 Jun 2000 15:14:10 +0200


Hallo Liste,
ich suche nach einer Möglichkeit zur Senkung der Server-Belastung durch
einen PHP-Chat. Wie schon in vorhergehenden Threads beschrieben, halten
einige Listenmitglieder PHP-Chats für zu lastintensiv.
Nun weiß ich, das einige PHP-Chats shared-memory-funktionen nutzen, um
dieses Problem in den Griff zu bekommen, die mir aber bis heute recht
schleierhaft sind und für die ich bis jetzt auch keine gute Doku
gefunden habe, das Handbuch wie div. deutsche PHP-Bücher beschränken
sich auf die Darstellung der Syntax der Funktionen.
Konkret: Ich habe einen recht aufwändigen PHP-Chat programmiert, der
Streaming (Endlosseiten, keine Reloads) benutzt. Nachrichten kommen in
eine MySQL-Datenbank, welche die Clients zyklisch abfragen. Genau hier
liegt der Haken: JEDER Client fragt im Sekundenrhythmus nach, ob neue
Einträge zur Ausgabe vorliegen. Bei zehn Chattern sind das allein 600
Selects/Minute, auch wenn keiner was geschrieben hat (Super ist dann,
wenn das MySQL-Logging eingeschaltet ist :( ). 
Ich weiß, das man über shared-memory nur dann einen select auslösen
kann, wenn ein neuer Eintrag vorliegt, nur realisiert kriege ich das
nicht. Es wird wohl ein flag gesetzt, wenn jemand etwas schreibt, die
Clients fragen das flag ab, was ja im RAM liegt, und deshalb wohl
Ressourcen schont, und nur wenn es gesetzt ist, erfolgt das select.
Oder? Und wie?
Gibt es alternative Möglichkeiten? MySQL beherrscht ja ab 3.23
HEAP-Tables, also Tabellen im Memory, diese unterstützen aber weder BLOB
noch TEXT noch AUTO_INCREMENT, was bei Chats eher schlecht ist.
Ein bißchen ratlos

Andre Temme

P.S.: Vielleicht können ja die Chat-Experten mal Zahlen über den
Ressourcenhunger ihrer Chats nennen (Main-Chat, PHPChat ...)


php::bar PHP Wiki   -   Listenarchive