php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Scripts > BRAINSTORMING PHP/SQL/HTML/JS/CSS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


BRAINSTORMING PHP/SQL/HTML/JS/CSS Ihr habt eine Idee, aber keinen genauen Ansatz? Diskutiert mit anderen Usern des Forums über eure Gedankengänge um evtl. hilfreiche Ideen zu bekommen!
Normale Fragen bitte weiterhin in die entsprechenden Foren!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 05-06-2006, 17:44
David Fischer
 Newbie
Links : Onlinestatus : David Fischer ist offline
Registriert seit: Jun 2006
Beiträge: 2
David Fischer ist zur Zeit noch ein unbeschriebenes Blatt
Standard PHP Streaming

Grundlage ist mittels PHP binäre Daten (Videos) in beliebig grossen Teilen zu parsen und dann an den Client zu senden.
Der Prozess bedient sich der Funktionen fopen, fseek, print, fclose. Auf was gilt es denn zu achten im Falle von grossen Dateien (150mb>) zu achten
und in welchem zusammenhang steht das mit dem memory_limit, output_buffering, max_execution_time, implicit_flush etc ?

Mir ist unklar an welchen Stellen des Prozesses Zwischenspeicherungen bzw. Weiterleitungen entstehen bzw. wann eine Garbage Collection stattfindet.
Binäre Daten werden eingelesen via PHP. Wird die Abarbeitung des ganzen File im Modul abgewartet bis der Output an den jeweiligen HTTP-Server (Apache) weitergeleitet wird und dieser die Daten dann ausliefert ?

Oder ist diese Technik überhaupt nicht ratsam ?

Das Ziel besteht vereinfacht darin einen geeigneten Streamingserver (Real/Windows/FlashMedia) zu umgehen, um einerseits die Verbindung zwischen Usermanagement und Zugriffsrechten zu erleichtern und andererseits kostenintensive Lizenzen zu umgehen. Hinzu kommt natürlich auch die Bandbreitenkalkulation, die bei non-progessiven (PHP-)Streams erheblich ins Gewicht fallen.

Die Schlüsselfrage ist eigentlich, ob man das o.g. Szenario einem "herkömmlich" konfigurierten Server zumuten kann (wobei ich jetzt mal die Cluster-Architektur ausser acht lasse) , welche PHP-seitgen konfigurationen ins Gewicht fallen und Flaschenhälse auf die es bei einer klassischen LAMP-Konfiguration zu achten gilt.

Vielen Dank für Eure Hilfe,

David
Mit Zitat antworten
  #2 (permalink)  
Alt 05-06-2006, 18:43
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Bei 150 MB und mehr bist du gezwungen, die Datei häppchenweise zu lesen und an den Client zu senden. Es wäre tödlich, erstmal alles in den RAM zu laden ($var = file(..)), das ist klar.

Wie groß ein Häppchen sein sollte, hängt ganz von der Art der Datei ab. Das memory_limit sollte dem größten möglichen Häppchen plus X für den Rest des Scripts nicht unterschreiten. Auch klar.
Speicherbedarf im worst case: "Anzahl paralleler Streams * memory_limit" Bytes - also auch die Anzahl der Streams begrenzen.

Der Webserver sollte alles was er vom Script bekommt sofort senden, um einen flüssigen Stream hinzubekommen. Das geht entweder per implicit_flush = on oder mit explizitem flush() nach jeder Ausgabe eines Häppchens.

Denk auch an die max_execution_time!

Garbage Collection findet in deinem Fall nicht statt (gibt es in PHP imho nur für Session-Files). Der belegte Speicher ist sofort wieder frei, wenn das Script beendet wird.

Ich hoffe, das hilft erstmal.


PHP ist für Streaming natürlich denkbar ungeeignet. Das weißt du hoffentlich. Ein eigener Deamon an einem bestimmten Port wäre besser. Sozusagen ein selbstgestrickter Streaminserver. Damit sparst du dir den Overhead eines Webservers, der jeden Request erstmal analysiert, evlt. umschreibt, seine ht-Regeln anwedet, den PHP-Interpreter startet, Logfiles führt ...
So einen Deamon könnte man sogar auch in PHP schreiben. Aber die Prozesskontrollfunktionen in PHP sind sehr dürftig und es ist und bleibt eben eine interpretierte Sprache.
Mit Zitat antworten
  #3 (permalink)  
Alt 06-06-2006, 15:36
David Fischer
 Newbie
Links : Onlinestatus : David Fischer ist offline
Registriert seit: Jun 2006
Beiträge: 2
David Fischer ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Vielen Dank für die ausführliche Erklärung. Vielleicht war der Ausdruck "Streaming" etwas fremdleitend. Es ist nicht so, dass eine stete Verbindung ähnlich einem Socket besteht. Primär geht es darum binäre Daten via PHP einzulesen und eine bestimmte Menge an Bytes an den HTTP-Server zur Ausgabe weiterzuleiten.

Einen dedizierten Daemon zu schreiben ist aber eine super Idee!


Vielen Dank nochmal,

David Fischer
Mit Zitat antworten
  #4 (permalink)  
Alt 15-11-2006, 13:17
trendspurt
 Newbie
Links : Onlinestatus : trendspurt ist offline
Registriert seit: Nov 2006
Beiträge: 1
trendspurt ist zur Zeit noch ein unbeschriebenes Blatt
Standard leidensgenosse ;)

Hi David!
Ich habe soeben zufällig deinen Post hier gelesen und musste feststellen, dass ich mich momentan exakt mit den gleichen Fragen und Problemen rumschlage. Mich würde interessieren, ob Du in der Sache schon weitergekommen bist bzw. ne akzeptable Lösung gefunden hast.
Würde mich über einen Erfahrungsaustausch sehr freuen.

Gruß aus Köln,
Simon
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:47 Uhr.