Dateiupload größe der /tmp Dateien

BillaBong

Erfahrenes Mitglied
Hallo,

ich habe folgendes Problem. Mein Apache läd mir meine Dateien die ich per HTML upload hochlade in das Verzeichnis /tmp. Jetzt wollte ich die Dateigröße dieser Dateien beobachten jedoch ist mir dabei aufgefallen das die Dateigröße sobalt diese angelegt wird schon so Groß wie die Fertige datei ist und man weder mit

PHP:
wc -c /tmp/datei

noch mit

PHP:
wc -m /tmp/datei

noch mit

PHP:
stat  -c %s /tmp/datei

überwachen kann wie die Datei anwächst. Wird der Speicherplatz schon beim anlegen reserviert ? Gibt es eine Möglichkeit das vieleicht doch zu beobachten?
 
Hallo deepthroat,

erst mal danke für deine Antwort. Aber mit "du" das hatte ich auch schon versucht hatte ich nur vergessen dazu zu machen. Habe mir jetzt aber extra nochmal die man page von du angeschaut und probiert aber mit "du" geht das auch nicht.

Mir kommt das so vor als würde die Größe des Tempfiles schon beim anlegen festgelegt.

Also lade ich eine Dateihoch die 40 MB groß ist dann ist die sobald die im Tempverzeichnis erscheint schon 40 MB groß dabei müsste die doch bei 0 anfangen und dann immer größer werden. Hat da jemand erfahrung mit ?
 
Also lade ich eine Dateihoch die 40 MB groß ist dann ist die sobald die im Tempverzeichnis erscheint schon 40 MB groß dabei müsste die doch bei 0 anfangen und dann immer größer werden.
Nein, das ist nicht unbedingt der Fall. Es kommt drauf an, was der Apache da macht. Üblich ist es die Datei bereits mit der endgültigen Größe anzulegen, aber falls das Dateisystem "Sparse files" unterstützt und die Datei zuerst mit Nullbytes gefüllt ist belegt die Datei keinen Speicher auf der Festplatte.

Was für eine Dateisystem wird denn in /tmp verwendet?

Gruß
 
/tmp liegt auf einer Festplatte auf der als Dateisystem ext3 verwendet wird. Ich habe gerade gelesen das ext3 "Sparse Files" unterstützt. Nehmen wir mal an der Apache schreibt die Temp files als "Sparse Files" wäre es dann möglich zu ermitteln wieviel das System von der Orginal-Datei schon in das "Sparse File" geschrieben wurde ?
 
Zuletzt bearbeitet:
/tmp liegt auf einer Festplatte auf der als Dateisystem ext3 verwendet wird. Ich habe gerade gelesen das ext3 "Sparse Files" unterstützt. Nehmen wir mal an der Apache schreibt die Temp files als "Sparse Files" wäre es dann möglich zu ermitteln wieviel das System von der Orginal-Datei schon in das "Sparse File" geschrieben wurde ?
Ja. Mit "du".

Gruß
 
@deepthroat erst mal danke für deine Gedult. :-D

also ich habe auf Wikipedia mal folgendes gefunden :

http://de.wikipedia.org/wiki/Sparse-Datei

und habe mit

PHP:
du -sb --apparent-size "testfile"

// und 

du -sb "testfile"

mal versucht die Dateigröße zu ermitteln. Leider ohne erfolg aus diesem Grund vermute ich das diese Tempfile doch keine "Sparse-Datei" ist. Nach ein bisschen Googlen bin ich auf folgende Seite gestoßen :

http://iws.cs.uni-magdeburg.de/~elkner/wdok/zope-findings.txt

und hier fand ich folgenden Auszug

- Serverseitiger Cache: Der Begriff Cache taucht sicherheitshalber gar nicht
erst in der Dokumentation auf (dagegen der Begriff object Live time),
allerdings enthaelt die Konfiguration-Datei, die beim Anlegen einer
Zope-Instanz generiert wird, ein undokumentiertes Beispiel - Parameter:
"cache-size".
Ein Experimentieren zeigt, dasz dieser Parameter auf den gesamten Prozess
bezogen ist und nicht wie anzumehmen den RAM bezeichnet, sondern eine
temporaere Datei (kein sparse file!), die zumindest unter Unix-OS unter /tmp/
angelegt wird. Da unter modernen Unix-Systemen /tmp i.d.R. ein in den
Hauptspeicher gemapptes Filesystem ist, hat die festgelegte Groesze
u.U. entscheidenden Einflusz auf das gesamte System: z.B. auf 1024 MB
gesetzt, werden diese von Zope sofort allokiert und stehen dem System
nicht mehr zur Verfuegung!

wie das jetzt der Apache handelt weiss ich nicht genau.
 
Zurück