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
- Die Gesamtzahl der Inodes wird bei der Erstellung des Dateisystems festgelegt.
- Einmal festgelegt, kann diese Zahl nicht mehr geändert werden.
- 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:
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.