Hallo zusammen, irgend wie steh ich evtl. auf dem Schlauch. Ich habe hier eine Maschine mit 1GB Ram und will mit php auf den Webspace ein File größer 1 GB laden. Ich kann zuschauen, wie während des laufenden Fileuploads der Hauptspeicher gegen Null läuft. Wenn ca.900 MB upgeloadet sind knallts weil kein Speicher mehr da ist. Irgendwie total unverständlich, wieso wird das nicht in den swap ausgelagert? Gibts da Möglichkeiten, dass man auch größere Files uploaden kann? Gruß Tom -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hi, nur damit ich das richtig verstehe. Hast du selber einen apache mit php laufen und möchtest darüber einen Upload starten? Oder soll der Upload über deinen Provider laufen. Falls ersteres, werf mal einen Blick in die /etc/php5/apache2/php.ini. Ca. bei Zeile 300 findest du den Punkt "Resource limit". Probiers mal ein bisschen mit anderen Werten. Bzw. Zeile 588, da kannst du das Limit für File-Uploads bestimmen. Tom schrieb:
Hallo zusammen, irgend wie steh ich evtl. auf dem Schlauch.
Ich habe hier eine Maschine mit 1GB Ram und will mit php auf den Webspace ein File größer 1 GB laden. Ich kann zuschauen, wie während des laufenden Fileuploads der Hauptspeicher gegen Null läuft. Wenn ca.900 MB upgeloadet sind knallts weil kein Speicher mehr da ist. Irgendwie total unverständlich, wieso wird das nicht in den swap ausgelagert? Gibts da Möglichkeiten, dass man auch größere Files uploaden kann?
Gruß Tom
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Mit den Einstellungen komm ich schon klar. Das Problem liegt darin, dass bei einem Upoad alles im Hauptspeicherr gehalten wird und dieser dann gegen Null geht und alles abbricht wenn der gegen NULL geht. Ich mache mal ein anderes Beispiel: Wenn 30 User gleichzeitig je ein File uploaden mit 50 MB sind das 30 x 50 ~ 1500 MB. Da dies alles im Speicher abläuft knallt es. Das kann doch nicht sein, da müsste das Sys doch auslagern? ----- Original Message ----- From: "Lars Ziegler" <lziegler@online.de> To: <opensuse-de@opensuse.org> Sent: Wednesday, August 06, 2008 8:28 AM Subject: Re: Fileupload mit PHP > 1 GB File out of Memory
Hi,
nur damit ich das richtig verstehe. Hast du selber einen apache mit php laufen und möchtest darüber einen Upload starten? Oder soll der Upload über deinen Provider laufen.
Falls ersteres, werf mal einen Blick in die /etc/php5/apache2/php.ini. Ca. bei Zeile 300 findest du den Punkt "Resource limit". Probiers mal ein bisschen mit anderen Werten. Bzw. Zeile 588, da kannst du das Limit für File-Uploads bestimmen.
Tom schrieb:
Hallo zusammen, irgend wie steh ich evtl. auf dem Schlauch.
Ich habe hier eine Maschine mit 1GB Ram und will mit php auf den Webspace ein File größer 1 GB laden. Ich kann zuschauen, wie während des laufenden Fileuploads der Hauptspeicher gegen Null läuft. Wenn ca.900 MB upgeloadet sind knallts weil kein Speicher mehr da ist. Irgendwie total unverständlich, wieso wird das nicht in den swap ausgelagert? Gibts da Möglichkeiten, dass man auch größere Files uploaden kann?
Gruß Tom
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo
Wenn 30 User gleichzeitig je ein File uploaden mit 50 MB sind das 30 x 50 ~ 1500 MB. Da dies alles im Speicher abläuft knallt es. Das kann doch nicht sein, da müsste das Sys doch auslagern?
Beim upload kommt es in den Speicher und dann wird es nach /tmp/php***** geschrieben d.h. bei 30 x 50 ist das kein problem da ja immer wieder der Speicher in eine Datei geschrieben wird. Das gleiche Problem hast du auch beim lesen wenn du versuchst 1 GB auf einmal einzulesen da wird der Speicher sicherlich auch voll. deshalb liest man große Dateien mit fopen und dann zeile für zeile in eine while aus. vielleicht gibt es eine möglichkeit mit den stream funktionen so eine große Datei hochzuladen. Wobei 1GB upload nicht sinvoll ist. und dieser thread in die php liste gehören würde gruß torsten -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Thorsten,
Wenn 30 User gleichzeitig je ein File uploaden mit 50 MB sind das 30 x 50 ~ 1500 MB. Da dies alles im Speicher abläuft knallt es. Das kann doch nicht sein, da müsste das Sys doch auslagern? Beim upload kommt es in den Speicher und dann wird es nach /tmp/php***** geschrieben d.h. bei 30 x 50 ist das kein problem da ja immer wieder der Speicher in eine Datei geschrieben wird.
Aber wie sieht das bei "gleichzeitigen" Uploads aus? Wenn man eine Website betreibt auf der "etwas" mehr an Uploads per http geht, kann es doch nicht sein, das man den Hauptspeicher aufbohren muss weil sich das nicht ins swap auslagert? Die Antworten die ich bis jetzt bekommen habe gehen leider immer von "kleinen" Websites aus. Ich meine, eine popouläre Website mit Uploadmöglichkeit kann doch nicht am Hauptspeicher scheitern? Ob das in die PHP Liste gehört weis ich nicht, ich denke Auslagerung ist doch eine Betriebsystem Sache(?). Zumindest bei Windows ist das so, das man virtuellen Speicher zugeben kann. Klar wirds dann langsamer, aber es bricht nicht einfach ab!
große Datei hochzuladen. Wobei 1GB upload nicht sinvoll ist.
Was sinnvoll ist oder nicht ist nicht die ganze Frage. Wenn 1 GB File nicht sinnvoll ist, dann aber auf jeden Fall eine Website wo mehr als 30 (oder 50) User gleichzeitig eine 20 - 50 MB Datei upladen können. Gruß Tom
gruß torsten
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Was sinnvoll ist oder nicht ist nicht die ganze Frage. Wenn 1 GB File nicht sinnvoll ist, dann aber auf jeden Fall eine Website wo mehr als 30 (oder 50) User gleichzeitig eine 20 - 50 MB Datei upladen können.
ich vermute, daraus macht apache dann 50 prozesse, die einzeln geswapt werden rr -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Leider nicht. Die Apache Prozesse bleiben in ihrem Speicherverbrauch während des uploads auf gleichem Niveau. Das heissts, da bewegt sich rein gar nichts. So wie das aussieht, ist es PHP das den Upload entgegen nimmt und im Hauptspeicher hält. Warum da bei der Suse kein swap Speicher benutzt wird wenn der Hauptspeicher alle ist, ist mir nicht klar. Vor allem ist mir nicht klar ob da jetzt PHP oder das BS schuld dran ist.
Was sinnvoll ist oder nicht ist nicht die ganze Frage. Wenn 1 GB File nicht sinnvoll ist, dann aber auf jeden Fall eine Website wo mehr als 30 (oder 50) User gleichzeitig eine 20 - 50 MB Datei upladen können.
ich vermute, daraus macht apache dann 50 prozesse, die einzeln geswapt werden rr
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hi, nein, den Apache lässt das kalt. Bin aber jetzt langsam auf der Spur woran es liegen könnte. Während des Uploads des Files get der free memory gegen 0 und der cache gegen top, swap bleibt gleich. Sobald free = 0 ist, steigt der upload aus. Somit ist ausgeschlossen, das Apache oder php was damit zu tun haben. Ein Kollege aus der php mailingliste hat das ganze mit ner Suse 8.2 probiert und er meinte das der Cache nicht bis zum Anschlag gefüllt wird und er kein Problem hätte, ein Uploadfile grösser als der Hauptspeicher per http upload hochzuladen. Für mich hat sich das Problem also auf das Verhalten des Cache gewandelt und ich hab derzeit null Plan was/wo ich da drehen könnte. ----- Original Message ----- From: "robert rottermann" <robert@redcor.ch> To: "Tom" <tg@anifit-tiernahrung.de> Cc: <opensuse-de@opensuse.org> Sent: Wednesday, August 06, 2008 11:04 PM Subject: Re: Fileupload mit PHP > 1 GB File out of Memory
Was sinnvoll ist oder nicht ist nicht die ganze Frage. Wenn 1 GB File nicht sinnvoll ist, dann aber auf jeden Fall eine Website wo mehr als 30 (oder 50) User gleichzeitig eine 20 - 50 MB Datei upladen können.
ich vermute, daraus macht apache dann 50 prozesse, die einzeln geswapt werden rr
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Problem ist lokalisiert und gefixt: Der http upload overhead ist dermassen hoch, dass ganz einfach meine grosszügig dimensionierten post_max_size und upload_max_size zu klein waren. Das heisst, ich kann nun mit einer Maschine mit 1 GB Hauptspeicher jetzt locker 2 GB hochladen wenn diese PHP Variablen entsprechend noch grosszügiger dimensioniert werden. Danke für Hilfe! ----- Original Message ----- From: "Tom" <tg@anifit-tiernahrung.de> To: <opensuse-de@opensuse.org> Sent: Thursday, August 07, 2008 10:30 PM Subject: Re: Fileupload mit PHP > 1 GB File out of Memory Hi, nein, den Apache lässt das kalt. Bin aber jetzt langsam auf der Spur woran es liegen könnte. Während des Uploads des Files get der free memory gegen 0 und der cache gegen top, swap bleibt gleich. Sobald free = 0 ist, steigt der upload aus. Somit ist ausgeschlossen, das Apache oder php was damit zu tun haben. Ein Kollege aus der php mailingliste hat das ganze mit ner Suse 8.2 probiert und er meinte das der Cache nicht bis zum Anschlag gefüllt wird und er kein Problem hätte, ein Uploadfile grösser als der Hauptspeicher per http upload hochzuladen. Für mich hat sich das Problem also auf das Verhalten des Cache gewandelt und ich hab derzeit null Plan was/wo ich da drehen könnte. ----- Original Message ----- From: "robert rottermann" <robert@redcor.ch> To: "Tom" <tg@anifit-tiernahrung.de> Cc: <opensuse-de@opensuse.org> Sent: Wednesday, August 06, 2008 11:04 PM Subject: Re: Fileupload mit PHP > 1 GB File out of Memory
Was sinnvoll ist oder nicht ist nicht die ganze Frage. Wenn 1 GB File nicht sinnvoll ist, dann aber auf jeden Fall eine Website wo mehr als 30 (oder 50) User gleichzeitig eine 20 - 50 MB Datei upladen können.
ich vermute, daraus macht apache dann 50 prozesse, die einzeln geswapt werden rr
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Tom,
Ich habe hier eine Maschine mit 1GB Ram und will mit php auf den Webspace ein File größer 1 GB laden.
Solche Probleme löse ich mit einem FTP-Server. Generell sollte man bei so übergroßen Dateien lieber über einen FTP-Server uploaden, weil der Upload über den Browser zu einem HTTP-Server von übergroßen Dateien dafür nicht gedacht ist/war. An deiner Stelle würde ich da umdenken. Gruß Sebastian -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (5)
-
Lars Ziegler
-
robert rottermann
-
Sebastian Siebert
-
Tom
-
Torsten Rosenberger