Die Größe beträgt 78 Byte, da das Verzeichnis fast leer ist. Mit "Verzeichnis" meine ich den unmittelbar nachkommenden Inhalt dieses Ordners, dh wenn Sie haben
.../controllers/ Class1/Whatever /Resources... Class2/Whatever /Resources...
"Controller" hat dann nur drei Einträge (.., Class1 und Class2. Ich weiß nicht genau, ob oder wie .. tatsächlich gespeichert ist).
Selbst wenn das Verzeichnis auf der Festplatte einen ganzen Block belegt, also 4 KB ( aber siehe unten ... ), bleibt die logische Größe des Verzeichnisses 78 Byte und wird in vielerlei Hinsicht wie eine Datei behandelt (das XFS-Whitepaper verweist darauf) es als Verzeichnisdatei ). Wenn Sie ein neues Objekt unmittelbar unter erstellen controllers
, gehe ich davon aus, dass sich diese Größe erhöht.
Innerhalb von Inodes können auch sehr kleine Verzeichnisse gespeichert werden, wodurch null tatsächliche Blöcke belegt werden:
Sehr kleine Dateien
Die meisten symbolischen Links und Verzeichnisdateien sind kleine Dateien. Mit XFS können diese Dateien in Inodes gespeichert werden, um die Leistung zu verbessern. XFS verwendet auch verzögerte Schreibvorgänge, um zu warten, um die gesamte kleine Datei im Puffercache zu sammeln, bevor auf die Festplatte geschrieben wird.
Um es zusammenzufassen, soweit ich es verstehe, können Sie haben
- kleine Verzeichnisdateien, die in Inodes (" Kurzverzeichnisse ") gespeichert sind, null Blöcke belegen und als Array organisiert sind.
- vernünftige Verzeichnisdateien, die in physischen Dateien gespeichert sind, die einen Block belegen (" Blockverzeichnisse ")
- Große Verzeichnisdateien, die in physischen Dateien gespeichert sind, ein ganzzahliges Vielfaches eines Blocks belegen und als B-Bäume für zusätzliche Geschwindigkeit organisiert sind .
Testen
Der verfügbare Platz in einem XFS-Inode für eine Verzeichnisdatei scheint auf meinem Linux-System etwa 156-157 Byte zu sein. Bei Überschreitung wird ein 4K-Block verwendet, aber die Freigabe von Speicherplatz gibt auch den Block frei und speichert die Informationen in den Inode.
mkdir temp drwxr-xr-x 2 root root 6 2013-04-22 08:59 temp touch temp/x; ls -la temp drwxr-xr-x 2 root root 14 2013-04-22 09:00 temp mv temp/x temp/{ 100 x's } drwxr-xr-x 2 root root 113 2013-04-22 09:01 temp { 130 x's } drwxr-xr-x 2 root root 143 2013-04-22 09:02 temp { 140 x's } drwxr-xr-x 2 root root 153 2013-04-22 09:02 temp { 146 x's } drwxr-xr-x 2 root root 4096 2013-04-22 09:03 temp { 142 x's } drwxr-xr-x 2 root root 155 2013-04-22 09:03 temp