![](https://seccdn.libravatar.org/avatar/29a9f788883d9219e7f9d727a8f940d5.jpg?s=120&d=mm&r=g)
Hallo, ich bekomme extrem abweichende Ergebnisse zwischen du und df für eine Partition. df -h: Dateisystem Größe Benut Verf Ben% Eingehängt auf /dev/sda6 2,8G 2,3G 400M 86% /var du -hcs var/: 969M var/ Welcher Wert ist denn nun der richtige und wie erklärt sich der Unterschied von 1.3 GB? Ich verwende in beiden Fällen die Version 6.9 der GNU coreutils. -- 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
![](https://seccdn.libravatar.org/avatar/1257c9aec48b5b65559ddea16efa2301.jpg?s=120&d=mm&r=g)
Am Tuesday 11 November 2008 11:09:07 schrieb Florian Schaal:
Hallo,
ich bekomme extrem abweichende Ergebnisse zwischen du und df für eine Partition.
df -h: Dateisystem Größe Benut Verf Ben% Eingehängt auf /dev/sda6 2,8G 2,3G 400M 86% /var
du -hcs var/: 969M var/
Welcher Wert ist denn nun der richtige und wie erklärt sich der Unterschied von 1.3 GB?
Ich verwende in beiden Fällen die Version 6.9 der GNU coreutils.
Hallo Florian, df betrachtet die Zuordnungseinheiten des Dateisystems, "du" betrachtet die Dateigrößen. Das führt dazu, dass eine Datei mit 321 Bytes Größe bei "du" mit 321 Bytes zählt, bei df aber mit 4096 (wenn das die Blockgröße des Dateisystems ist). Und gerade /var/spool ist ein Kandidat für viele solcher kleiner Dateien. df ist also besser geeignet, um anzuzeigen, wie stark die Dateisysteme ausgelastet sind, währen "du" besser geeignet ist, den Platz zu berechnen, den ein Verzeichnis in einem Datei-Archiv belegen wird. Man könnte es auch so ausdrücken: df ist dateisystemorientiert, während "du" verzeichnisorientiert ist. Siehe auch "man du" und "man df". Wenn ich also eine unerwartete Belegung eines Dateisystems feststelle (mittels df), gehe ich mittels "du -sk" oder ähnlich durch die Verzeichnisse des Dateisystems, um das verursachende Verzeichnis zu finden. Tschö, Emil -- Registered Linux User since 19940320 -------------------------------------------------- Emil Stephan, Marktplatz 39, 53773 Hennef, Germany voice: +49-2242-84438 Accelerate Windows: 9.81 m/sec^2 would be adequate -- 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
![](https://seccdn.libravatar.org/avatar/cd7a4c1aa5781c153c0e235ec71bb0e0.jpg?s=120&d=mm&r=g)
On Tuesday 11 November 2008 12:13:15 Emil Stephan wrote:
df betrachtet die Zuordnungseinheiten des Dateisystems, "du" betrachtet die Dateigrößen. Das führt dazu, dass eine Datei mit 321 Bytes Größe bei "du" mit 321 Bytes zählt, bei df aber mit 4096 (wenn das die Blockgröße des Dateisystems ist).
Das heisst also, dass ich eine Partition mit eher kleinen Dateien (z.B. /var) anlege die Blockgröße auf einen niedrigeren Wert setzen sollte? Kleinere Blockgrößen gehen doch zu Lasten der Performance, oder? Hat jemand Erfahrungsewerte bezüglich der Blockgröße? MfG Marco -- 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
![](https://seccdn.libravatar.org/avatar/36545824f598e466583a81e838e79f14.jpg?s=120&d=mm&r=g)
Marco Roeben wrote:
On Tuesday 11 November 2008 12:13:15 Emil Stephan wrote:
df betrachtet die Zuordnungseinheiten des Dateisystems, "du" betrachtet die Dateigrößen. Das führt dazu, dass eine Datei mit 321 Bytes Größe bei "du" mit 321 Bytes zählt, bei df aber mit 4096 (wenn das die Blockgröße des Dateisystems ist).
Das heisst also, dass ich eine Partition mit eher kleinen Dateien (z.B. /var) anlege die Blockgröße auf einen niedrigeren Wert setzen sollte? Kleinere Blockgrößen gehen doch zu Lasten der Performance, oder? Hat jemand Erfahrungsewerte bezüglich der Blockgröße?
MfG Marco
Ich will ja nichts sagen, aber, obwohl ich hier 20 Drucker, mehrere Mailboxen und jede Menge anderen Krempel mit kleinen Dateien am rödeln habe, ist der Fehler, der aus der Blocksize resultiert bei mir im /var 4MB bei 150MB, also unter 5%. Das ist AFAIK auch ein üblicher Wert. (ext2) Entweder, Du hast was Spezielles (Mailserver für viele Leute...) am Laufen oder ein spezielles Filesystem... was ich nicht weiß, ist, wie groß üblicherweise das Journal bei ext3... ist, das fällt doch wohl auch in die Differenz zwischen du und df. Vielleicht ist es in so einem Fall auch sinnvoll, das Journal immer mal neu zu erstellen. gruß joerg -- 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
![](https://seccdn.libravatar.org/avatar/cd7a4c1aa5781c153c0e235ec71bb0e0.jpg?s=120&d=mm&r=g)
On Tuesday 11 November 2008 12:52:14 Joerg Thuemmler wrote:
Das heisst also, dass ich eine Partition mit eher kleinen Dateien (z.B. /var) anlege die Blockgröße auf einen niedrigeren Wert setzen sollte? Kleinere Blockgrößen gehen doch zu Lasten der Performance, oder? Hat jemand Erfahrungsewerte bezüglich der Blockgröße?
Ich will ja nichts sagen, aber, obwohl ich hier 20 Drucker, mehrere Mailboxen und jede Menge anderen Krempel mit kleinen Dateien am rödeln habe, ist der Fehler, der aus der Blocksize resultiert bei mir im /var 4MB bei 150MB, also unter 5%. Das ist AFAIK auch ein üblicher Wert. (ext2)
Ok, dann mach ich mir keine weiteren Gedanken darüber. Ist doch auch schön sich über etwas keine Gedanken machen zu müssen. :-) MfG Marco -- 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
![](https://seccdn.libravatar.org/avatar/8e9008345205e6ee86b2e3344b5dbdbc.jpg?s=120&d=mm&r=g)
Marco Roeben schrieb:
On Tuesday 11 November 2008 12:13:15 Emil Stephan wrote:
df betrachtet die Zuordnungseinheiten des Dateisystems, "du" betrachtet die Dateigrößen. Das führt dazu, dass eine Datei mit 321 Bytes Größe bei "du" mit 321 Bytes zählt, bei df aber mit 4096 (wenn das die Blockgröße des Dateisystems ist).
Das heisst also, dass ich eine Partition mit eher kleinen Dateien (z.B. /var) anlege die Blockgröße auf einen niedrigeren Wert setzen sollte? Kleinere Blockgrößen gehen doch zu Lasten der Performance, oder? Hat jemand Erfahrungsewerte bezüglich der Blockgröße?
mein Langzeitgedächtnis sagt mir, dass da irgendwas war mit endlicher Zahl der INodes..und dass man bei manchen sehr grossen Platten die Blockgrösse hochsetzen solle, damit die INodes nicht "alle werden"... aber wann ? aber 2 TB oder 4TB (?).. und man sollte sie auch nicht kleiner machen als nötig... hatte es ext-Filesystem gar eine feste INodes Anzahl ? also bei solchen Sonderfällen -> nachlesen, normal ist es eher uninteressant..auch was Mails angeht, Mails sind fast immer so bei 1..2 kByte Anfangsgrösse ( wegen des Headers...)
MfG Marco
Fred -- 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
![](https://seccdn.libravatar.org/avatar/cade75bc5a38eae7b8d86692a7433a68.jpg?s=120&d=mm&r=g)
On Tue 11 Nov 2008, Florian Schaal wrote:
ich bekomme extrem abweichende Ergebnisse zwischen du und df für eine Partition.
df schaut im Superblock des Filesystems nach (man statfs). du durchsucht Verzeichnisse und zählt die von den Dateien belegten Blöcke (oder Bytes) zusammen. Die Zahlen sind also nicht wirklich vergleichbar. Ein Programm kann (ganz legitim) ein File öffnen und es sofort löschen, aber geöffnet lassen. Damit kommt es in keinem Verzeichnis mehr vor; du kann es also nicht mitzählen. Das Programm kann aber trotzdem in das File schreiben. Wo landen die Daten dann? Natürlich auf der Partition (und df zählt sie mit), aber eben in keinem Verzeichnis. Erst wenn das Programm das File schließt, wird der Platz freigegeben. /tmp und /var/tmp sind gute Kandidaten für solche Aktionen. Vmware hat früher (vielleicht auch noch heute) sowas z.B. gemacht. Die Dateien konnten richtig groß werden. Vergleichbar sind die Zahlen eigentlich nur, wenn Du genau weißt, daß kein anderes Programm die Partition benutzt. Du solltest also von einer Knoppix DVD oder so booten. Ein anderer interessanter Effekt in diesem Zusammenhang ist dieser: $ du -sch 4.0K . 4.0K total $ ls -lah total 8.0K drwxr-xr-x 2 r2 users 4.0K 2008-11-11 13:04 . drwxr-xr-x 3 r2 users 4.0K 2008-11-11 13:03 .. -rw-r--r-- 1 r2 users 477G 2008-11-11 13:18 x Da gibt es ein File mit 477G Größe, du zeigt aber bloß 4k aks belegt in diesem Verzeichnis an. Bzw. $ du -sch x 0 x 0 total Wie geht das? Es wurden nie Daten in das File geschrieben, sondern nur mit seek (man lseek) der End-Of-File Pointer an eine bestimmte Stelle geschoben. Das File besteht also aus einem großen Loch. Man erstellt solch ein File z.B. mit "dd if=/dev/null of=x seek=1000000000" Torsten -- Need professional mod_perl support? Just hire me: torsten.foertsch@gmx.net -- 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
![](https://seccdn.libravatar.org/avatar/36545824f598e466583a81e838e79f14.jpg?s=120&d=mm&r=g)
Torsten Foertsch wrote:
On Tue 11 Nov 2008, Florian Schaal wrote:
ich bekomme extrem abweichende Ergebnisse zwischen du und df für eine Partition.
df schaut im Superblock des Filesystems nach (man statfs). du durchsucht Verzeichnisse und zählt die von den Dateien belegten Blöcke (oder Bytes) zusammen. Die Zahlen sind also nicht wirklich vergleichbar.
Ein Programm kann (ganz legitim) ein File öffnen und es sofort löschen, aber geöffnet lassen. Damit kommt es in keinem Verzeichnis mehr vor; du kann es also nicht mitzählen. Das Programm kann aber trotzdem in das File schreiben. Wo landen die Daten dann? Natürlich auf der Partition (und df zählt sie mit), aber eben in keinem Verzeichnis. Erst wenn das Programm das File schließt, wird der Platz freigegeben. /tmp und /var/tmp sind gute Kandidaten für solche Aktionen. Vmware hat früher (vielleicht auch noch heute) sowas z.B. gemacht. Die Dateien konnten richtig groß werden.
Vergleichbar sind die Zahlen eigentlich nur, wenn Du genau weißt, daß kein anderes Programm die Partition benutzt. Du solltest also von einer Knoppix DVD oder so booten.
Ein anderer interessanter Effekt in diesem Zusammenhang ist dieser:
$ du -sch 4.0K . 4.0K total $ ls -lah total 8.0K drwxr-xr-x 2 r2 users 4.0K 2008-11-11 13:04 . drwxr-xr-x 3 r2 users 4.0K 2008-11-11 13:03 .. -rw-r--r-- 1 r2 users 477G 2008-11-11 13:18 x
Da gibt es ein File mit 477G Größe, du zeigt aber bloß 4k aks belegt in diesem Verzeichnis an. Bzw.
$ du -sch x 0 x 0 total
Wie geht das? Es wurden nie Daten in das File geschrieben, sondern nur mit seek (man lseek) der End-Of-File Pointer an eine bestimmte Stelle geschoben. Das File besteht also aus einem großen Loch. Man erstellt solch ein File z.B. mit "dd if=/dev/null of=x seek=1000000000"
Torsten
-- Need professional mod_perl support? Just hire me: torsten.foertsch@gmx.net
Hi, Florian hatte aber 'n fsck schon laufen lassen. Da sollte niemand mehr dran rumtun. Und das mit dem dd haut nur bei ls hin. df und du rechnen es beide nicht mit. Hab ich grade getestet. Nur ls -l zeigt für "x" was an. Vielleicht ist auch was an der Partitionstabelle oder so. Auf jeden Fall nix, was im "normalen" User-Linux ohne spezielle Finessen und Nutzungsmethoden vorkommen sollte. Dafür ist die Abweichung IMHO zu groß. Bleibt das eigentlich über einen reboot hinaus (btw. ich würde vorm reboot alles sichern, was mir lieb und teuer ist, für den Fall, daß es die logische Partitionierung ist und nachher nicht nur /var betroffen oder gar physikalisch, obwohl das nicht so klingt, solange du keine Fehler ausgibt. Gibts im übrigen was in den messages oder warnings, was auf was Unregelmäßiges hindeutet? joerg -- 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
![](https://seccdn.libravatar.org/avatar/8e9008345205e6ee86b2e3344b5dbdbc.jpg?s=120&d=mm&r=g)
Florian Schaal schrieb:
Hallo,
ich bekomme extrem abweichende Ergebnisse zwischen du und df für eine Partition.
df -h: Dateisystem Größe Benut Verf Ben% Eingehängt auf /dev/sda6 2,8G 2,3G 400M 86% /var
du -hcs var/: 969M var/
Welcher Wert ist denn nun der richtige und wie erklärt sich der Unterschied von 1.3 GB?
die meisten Antworten kennst du ja... denk dran, auch Links belegen und addressieren Platz! und dann gibt es noch "sparse-Files"... also eine 4 kB grosse Datei, wo drin steht, dass das eigenntlich " 2 hoch 98 mal 0x00 " oder so in der Art sein soll! zippen und als Mailbombe verwenden...neuere Packer erkenne das ..ältere eher nicht...und schon läuft die Platte über...
Ich verwende in beiden Fällen die Version 6.9 der GNU coreutils.
solltest du nicht so eng sehen...aber 86% ist ein bissel arg wenig - wobei: kommt drauf an wofür! Fred -- 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
![](https://seccdn.libravatar.org/avatar/5225200c7db0f599e6648ea11a9f84c1.jpg?s=120&d=mm&r=g)
On Tue, 11 Nov 2008 11:09:07 +0100 Florian Schaal <system@ra-schaal.de> wrote:
ich bekomme extrem abweichende Ergebnisse zwischen du und df für eine Partition.
Fällt mir erst jetzt auf: welches Filesystem? -- Gruß, Tobias. -- 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 (7)
-
Emil Stephan
-
Florian Schaal
-
Fred Ockert
-
Joerg Thuemmler
-
Marco Roeben
-
Tobias Crefeld
-
Torsten Foertsch