Mailinglisten-Archive |
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