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 Sie eine solche Benachrichtigung erhalten haben, können Sie 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

Verwenden Sie 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 finden Sie im entsprechenden Support-Artikel.