Allocated versus Actual Disk Space

Dateigröße versus belegter Speicherplatz

Was ist der Unterschied zwischen den Speicherplatz-Angaben?

Wussten Sie schon? Disk Space Management
23.03.2022

Wenn Sie mit TreeSize Ihre Festplatte untersuchen, ist Ihnen bestimmt schon mal aufgefallen, dass TreeSize zwei unterschiedliche Werte für die Dateigröße ausgibt: Die Größe und der belegte Speicherplatz.

Beide Werte können bereits mit Windows Bordmitteln in den „Eigenschaften” einer Datei abgerufen werden:

Dabei fällt auf, dass die beiden Größen häufig nicht identisch sind. Doch was genau ist der Unterschied zwischen diesen beiden Werten?

 

Zuordnung von Festplatten-Blöcken zu Dateien

Gerade wenn man Speicherplatz sparen möchte, ist es sinnvoll, den Unterschied zwischen Größe und belegtem Speicherplatz zu verstehen. Hierzu möchten wir zunächst einmal erklären, wie eine Festplatte unter dem Windows-Dateisystem „NTFS“ funktioniert.

Festplatten sind in Blöcke aufgeteilt – unter NTFS sind diese 4 096 Bytes (4KB) groß. Ein Block ist immer genau einer Datei zugeordnet, wobei der letzte Block häufig nicht ganz gefüllt ist.

Hat eine Textdatei beispielsweise eine Größe von 4100 Bytes, belegt sie 2 Blöcke also 8.192 Bytes oder 8KB. Der restliche Platz im letzten Block (4.092 Bytes) kann nicht durch eine andere Datei genutzt werden und ist somit verloren. Daraus ergibt sich auch, dass der belegte Platz immer ein Vielfaches der Blockgröße des Dateisystems sein muss.

 

Dateikompression macht den Unterschied

Wie lässt sich der belegte Speicherplatz denn nun trotzdem reduzieren, ohne die Datei zu beschädigen? Eine einfache und schnelle Möglichkeit ist die Nutzung der NTFS-Kompression: Eine Datei wird dabei komprimiert abgespeichert.

Beim Lesen und Speichern der Datei in der zugehörigen Anwendung erfolgt die Dekomprimierung dann automatisch und transparent durch den Dateisystemtreiber. Transparent heißt hierbei, dass die Anwendung selbst nichts davon erfahren muss – die Datei muss auch nicht zuerst wie etwa bei ZIPs entpackt werden. Andere Faktoren wie Performance werden dadurch nur minimal beeinträchtigt.

Nach der Aktivierung der Dateikompression haben wir nun einen deutlicheren Unterschied:

Unsere Speicherplatzmanager TreeSize und SpaceObServer können die NTFS-Kompression sogar auf mehrere Dateien auf einmal oder ganze Verzeichniszweige anwenden. So lässt sich ganz schnell und einfach Speicherplatz zugewinnen.

 

Belegter Platz auf einer Festplatte

Summiert man nun den belegten Speicherplatz aller Dateien auf, so wie TreeSize es macht, wird man feststellen, dass diese Summe kleiner ist als der belegte Platz, den Windows für die Festplatte berichtet. Wieso ist diese Summe kleiner und wodurch wird der restliche Platz belegt?

Um das zu verstehen, müssen wir wieder einen Blick auf die Funktionsweise des Dateisystems werfen. Das Dateisystem selbst benötigt weiteren Speicherplatz für Verwaltungsinformationen. Dazu zählt vor allem für die Liste der enthaltenen Dateien samt ihren Metadaten. Diese wird im Windows-Dateisystem Master File Table (MFT) genannt.

Typischerweise wird hier für jede Datei ein Block belegt. Die MFT wird bei Bedarf automatisch vergrößert, niemals aber verkleinert. Der Platz für diese Verwaltungsinformationen kann nicht ohne weiteres freigegeben werden - auch nicht durch Löschen der Dateien, so dass er nicht in den belegten Speicherplatz, den unsere Produkte berechnen, einfließt.

 

Resident Files ohne eigenen Block

Nun könnte man folgern: Wenn eine Datei nur ein paar Bytes groß ist, belegt sie also immer mindestens einen Block? Das wäre ja eine ganz schöne Platzverschwendung. Aber das stimmt so nicht, denn hierfür haben sich die Entwickler:innen des NTFS-Dateisystem etwas Spannendes einfallen lassen.

Der Inhalt sehr kleiner Dateien mit einem Grenzwert von circa  900 Bytes wird einfach in dem zur Datei gehörenden Eintrag der MFT gespeichert, im sogenannten Descriptor. Das bedeutet, dass solche sehr kleine Dateien, die man Resident Files nennt, keinen eigenen Speicherplatz auf der Festplatte belegen. Das kann man auch im Windows Eigenschaften Dialog sehen:

Ist das fair gerechnet?

Es darf die Frage gestellt, ob Windows und TreeSize hier denn fair und richtig rechnen?

Für TreeSize haben wir die Frage so beantwortet: Wir zeigen an, wie viel Speicherplatz Sie auf Ihrer Festplatte zurückgewinnen können, wenn Sie die Datei löschen. Im beschriebenen Fall sind das eben 0 Bytes.

 

Kurz und knapp: Der Unterschied zwischen Dateigröße und belegtem Speicherplatz

Fassen wir unsere Erkenntnisse also nochmal zusammen. Man muss zwischen der Dateigröße und dem Speicherplatz, der von der Datei auf der Festplatte tatsächlich beansprucht wird, unterscheiden.

Da das Windows-Dateisystem jedoch einen Block immer nur genau einer Datei zuordnet, kann es vorkommen, dass der belegte Speicherplatz manchmal minimal größer ausfällt als die Dateigröße. Der belegte Speicherplatz kann durch NTFS-Kompression verringert werden, ohne die Dateigröße zu beeinflussen.

Ganz kleine Dateien bekommen als Resident Files keinen eigenen Block zugewiesen – stattdessen werden ihre Dateiinhalte in der MFT gespeichert. Somit belegen diese überhaupt keinen Speicherplatz auf der Festplatte.

 

 

Möchten Sie immer auf dem neuesten Stand bleiben?

Hat Ihnen der Beitrag gefallen, haben Sie noch weitere Ideen oder Feedback für uns? Lassen Sie es uns über das Kontaktformular wissen, wir freuen uns auf den Austausch!

Blog author Joey

Joey

File & Disk Space Management, Banking Software