Zum Hauptinhalt springen

Inodes

Ein Inode (Index Node) ist eine grundlegende Datenstruktur in Linux-Dateisystemen, die wichtige Metadaten über Dateien und Verzeichnisse speichert, darunter:

  • Dateityp
  • Eigentümerschaft (Benutzer und Gruppe)
  • Berechtigungen
  • Dateigrösse
  • Speicherort der Daten
  • Zeitstempel

Jede Datei und jedes Verzeichnis in ext-Dateisystemen (z.B. ext2, ext3, ext4) wird durch einen eindeutigen Inode repräsentiert.

Beschränkungen​

  1. Die Gesamtzahl der Inodes wird bei der Erstellung des Dateisystems festgelegt.
  2. Einmal festgelegt, kann diese Zahl nicht mehr geändert werden.
  3. Jeder ext4-Inode belegt 256 Bytes an Speicherplatz.

Zuweisung​

ext4 verwendet ein Verhältnis von 1 Inode pro 16 KiB Plattenplatz. Das bedeutet, dass eine 100 GB Partition etwa 6 Millionen Inodes zur Verfügung hat.

Benachrichtigungen​

Kunden mit einem verwalteten Server erhalten bei 80 bzw. 90% Inode-Nutzung eine automatische Benachrichtigung per E-Mail. Wenn du eine solche Benachrichtigung erhalten hast, kannst du den folgenden Befehl verwenden, um herauszufinden, wo im Dateisystem diese Inodes verwendet werden:

www-data@myserver:~ find /home /tmp -xdev -printf '%h\n' | sort | uniq -c | sort -k 1 -nr | head -n 20

Eine Übersicht über die aktuelle Inode-Nutzung kann mit dem folgenden Befehl angezeigt werden:

df -ih

Cron Job​

Ein erhöhter Inode-Verbrauch geht in der Regel mit vielen kleinen Dateien einher, z. B. mit temporären Dateien wie Sitzungen oder Cache. In solchen Fällen empfehlen wir die Verwendung eines Cron-Jobs, um Dateien, die älter als 14 Tage sind, automatisch zu löschen:

tip

Verwende zu Testzwecken vor der Einrichtung der Cron-Jobs den Befehl ohne die Option -delete, da der Befehl alle im angegebenen Pfad gefundenen Dateien ungefragt löscht.

0 3 * * * /usr/bin/find /path/to/files* -type f -mtime +14 -delete > /dev/null 2>&1

Weitere Informationen zum Einrichten eines Cron-Jobs findest du im entsprechenden Support-Artikel.