Moderne Linux-Dateisysteme nutzen sogenannte Inodes, um Dateien zu organisieren. Um es einfach zu erklären – eine Inode hat eine Zahl, diese gibt es auf einem Dateisystem nur einmal – jede Inode gibt es also nur einmal. Mit Inodes findet das Dateisystem, einfach gesagt, Dateien einfach schneller. Inodes werden unter folgenden Dateisystemen genutzt: ext2, ext3 und ext4.

Jetzt gibt es aber ein kleines Problem – ein Dateisystem, also eine Partition verfügt je nach Größe nur über eine bestimmte Anzahl von Inodes. Grundlegend sollte dies für normal genutzte Systeme kein Problem sein, es sollte also genug freie Inodes geben. Hat man jedoch auf einem Dateisystem extrem viele kleine Dateien, kann es schon passieren, dass es keine freie Inodes mehr gibt – im schlechtesten Fall kann es passieren, dass einfach gar nichts mehr geht. Solche Probleme könnte es vor allem auf Server geben, auf denen eben viele kleine Dateien vorhanden sind.

Nun, wollen wir uns ganz einfach einmal ansehen, wie viele Inodes auf dem System noch frei sind:

df -ih

In der ausgegebenen Tabelle finden wir zu Beginn das Dateisystem, es folgten unter Inodes die auf dem Dateisystem möglichen Inodes – in diesem Fall unter /dev/sda1 59 Millionen. Unter IBenutzt sehen wir die aktuell genutzten Inodes – also 114.000, in meinem Fall hätte ich noch Platz ohne Ende. Unter IFrei zeigen sich die noch freien Inodes und unter IUse die belegten Inodes in Prozent.

Schlecht an der Geschichte – wir können auf einem Dateisystem keine zusätzlichen Inodes hinzufügen, wir können nur belegte Inodes freigeben. Einfach gesagt – wir müssen Dateien löschen, im besten Fall natürlich viele kleine. Dazu sehen wir uns einfach an, wo, wie viele Dateien liegen – und wo die meisten Dateien liegen. Dies kann natürlich etwas mühselig sein – also sollte ein wenig Geduld da sein. Für manche Systemverzeichnisse ist der Befehl natürlich mit administrativen Rechten auszuführen – in diesem Fall schaue ich mir an, wie viele Dateien unter meinem Home-Verzeichnis liegen:

for i in /home/robertg; do echo $i; find $i | wc -l | sort ; done

In meinem Fall liegen hier 130928 Dateien / Verzeichnisse. Jetzt kann man weitergehen und im Befehl weitere Unterverzeichnisse angeben, eben so herausfinden, wo die meisten Dateien liegen.

Es muss also nicht der Speicherplatz auf der Festplatte sein, wenn nichts mehr richtig funktioniert – es können auch zu viele belegte Inodes sein.

Categories:

Schreibe einen Kommentar

3 Reaktionen

  1. beim Anlegen eines Filessystems können die Anzahl I-Nodes mitgegeben werden (siehe mkfs -i ) .

    Normalerweise kommt man kaum mehr in Verlegenheit, dass I-Nodes ausgehen. Eine
    4TB Platte (bei einer Blockgröße von 4K) liefert Platz für rund 240.000.000 Einträge.

    Selbst bei 512 Byte Blockgröße ist das Verhältnis blöcke zu Inodes ca. 1:32 was eine durchschnittliche Dateigröße von 16 KB ergibt.

Neue Themen im Forum
Neujahrsvorsatz
Umlaute in PDF-FormularMit Okular gibt es unter Debian (alle Distributionen mit dieser Ok … Weiterlesen
Kann man einen Browser (flatpak) …Das Crashen ist gelöst. Es lag am VMWare Kerneltreiber in der Vers … Weiterlesen
Kategorien im Wiki
WIKI-Beiträge des Monates

Die Beiträge des Monates finden Sie im Kalender unter den blau markierten Tageszahlen.

Dezember 2024
M D M D F S S
 1
2345678
9101112131415
16171819202122
23242526272829
3031  
Archive