![]() Mailinglisten-Archive |
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