phpbar.de logo

Mailinglisten-Archive

[php] PHP Session File Parser in Java

[php] PHP Session File Parser in Java

Andreas Müller php at universalware.de
Sam Feb 26 21:14:57 CET 2005


Hallo zusammen,
euren Antworten zu entnehmen hat jemand sowas was ich suche noch nicht
gemacht.

Mal kurz zum Hintergrund: Auf dem Server läuft eine PHP Anwendung mit zum
Teil weiter über 70 langlaufende Indianer (HTTP Streaming). Diese sind
wiederum auf extensive Inter-Prozess-Kommunikation angewiesen - und das
ganze muss unter Linux und unter Windows laufen können. Dazu kommen noch
jede Menge normaler Indianer mit Bilder, kleinen PHP Scripten mit oder ohne
DB etc. D.h. alles zusammen recht viel Last.

Die Indianer auf der Linux Maschine sorgen mit der Zeit dazu das der
Hauptspeicher zur Neige geht. Dabei ist es unerheblich wieviel RAM ich da
reinstecke denn das ganze muss auch bei 200++ Langlaufindianer noch gehen.
Pro Indianer fallen im Moment so rund 7 MB Ram an - das ist ne Menge. Bei
200 Indianern die so im Schnitt rennen sind das 1,4 GB RAM.

Deswegen möchte ich die Funktionalität der Langlaufindianer in einen
multithreaded Java Deamon stecken. Das ist letztendlich wesentlich
schonender für die Systemlast. So wird wesentlich weniger RAM verbraucht und
die IPC ist auch extrem einfach weil eben die eben eine Single Instance
Application. Nach aktuellen Vorab-Tests liege ich bei 50 Langlaufthreads in
Java bei rund 42 MB RAM im vergleich zu 350 MB RAM bei 50 Indianern.

Nun möchte ich das ganze als AddOn bauen und in die bestehende PHP Umgebung
einbinden. Das einzige was die PHP Prozesse von einander wissen wird über
die Session übergeben. Also was liegt Näher als den Java Prozess genau auch
dort lesen zu lassen. Technisch wird das dann so sein das der Java Teil über
eine eigene IP oder Port angesprochen wird und sich vom Systemverhalten
nahtlos eingliedern soll. D.h. z.B. PHP Session weg -> Java Deamon
verweigert den Dienst o.ä.
Deswegen wird das ganze Java Teil auch nicht als Servlet mit Tomcat o.ä.
overkill entwickelt sondern als simpler Socket-Server. Die Aufgabe ist
messerscharf umrissen und es geht um Performace - sowohl Zeit als auch Ram.

Gruß,
Andreas



php::bar PHP Wiki   -   Listenarchive