Linux: Kein Speicherplatz mehr auf Gerät 500 – Fehler aufgrund voller Inodes

Linux: Kein Speicherplatz mehr auf Gerät 500 – Fehler aufgrund voller Inodes

Was ist ein Inode?

Um Inode zu verstehen, müssen wir mit der Dateispeicherung beginnen.

Dateien werden auf der Festplatte gespeichert und die kleinste Speichereinheit der Festplatte wird als „Sektor“ bezeichnet. Jeder Sektor speichert 512 Bytes (entspricht 0,5 KB).

Wenn das Betriebssystem die Festplatte liest, liest es sie nicht Sektor für Sektor, was zu ineffizient ist. Stattdessen liest es mehrere Sektoren gleichzeitig, d. h. es liest jeweils einen "Block". <br>Dieser aus mehreren Sektoren bestehende „Block“ ist die kleinste Einheit des Dateizugriffs. Die gebräuchlichste „Blockgröße“ ist 4 KB, das heißt, acht aufeinanderfolgende Sektoren bilden einen Block.

Dateidaten werden in „Blöcken“ gespeichert, daher müssen wir natürlich auch einen Ort finden, um die Metadaten der Datei zu speichern, beispielsweise den Ersteller der Datei, das Erstellungsdatum der Datei, die Größe der Datei usw. <br>Dieser Bereich zum Speichern von Dateimetadaten wird Inode genannt, was auf Chinesisch „Indexknoten“ übersetzt wird.

Kürzlich meldete der Website-Editor, dass das Hochladen von Bildern fehlschlug und die Website-Seiten häufig 500 Fehler aufwiesen.

Nach allgemeinen 500-Fehlern habe ich unter https://www.jb51.net/article/175431.htm gesucht und festgestellt, dass die Konfiguration in Ordnung war.

Habe das Nginx-Fehlerprotokoll überprüft und festgestellt, dass der Speicherplatz voll war

Ich habe die Festplattennutzung mit dem Befehl df -h geprüft und festgestellt, dass noch etwas Speicherplatz übrig ist.

Problem gefunden: Später habe ich den Indexknoten (Inode) mit df -i überprüft und festgestellt, dass er voll war (IUsed=100 %), wodurch das System keine neuen Verzeichnisse und Dateien erstellen konnte.

Lösung: Löschen Sie unbrauchbare temporäre Dateien und geben Sie Inodes frei.

Sie können sehen, dass sich im Verzeichnis /tmp viele temporäre Dateien befinden.

Sie können auch das Verzeichnis /var/spool/ wählen

Geben Sie den folgenden Befehl ein, um die Anzahl der Dateien unter /var/spool/ anzuzeigen.

für i in /var/spool/; führe echo $i aus; finde $i |wc -l|sort -nr; fertig

Sehen Sie, es gibt mehr als 2 Millionen Dateien

cd /var/spool/clientmqueue/ Gehen Sie in dieses Verzeichnis, löschen Sie diese nutzlosen Dateien, überprüfen Sie, es gibt 600.000 Dateien, es sind zu viele Dateien,

Also habe ich diesen Befehl verwendet:

ls | xargs rm -rf

2 oder dieser Befehl

finden . -name "*" | xargs rm -rf

Die Dateien können stapelweise gelöscht werden. Die folgende Abbildung zeigt den Effekt nach dem Löschen: Die Inode-Nutzung beträgt 21 %. In Ordnung

Da die Junk-Dateien lange Zeit nicht bereinigt wurden, dauert das Bereinigen der Dateien zu lange. Um solche Probleme zu vermeiden, sollten Sie die Junk-Dateien des Systems am besten regelmäßig bereinigen oder ein Überwachungssystem einsetzen.

Sie können einige Dateien vorübergehend in ein Verzeichnis übertragen, das basierend auf der Dateibelegung des größeren Verzeichnisses weniger Speicherplatz beansprucht.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung des Linux-Indexknoten-Inode
  • Details zur Linux-Netzwerkeinrichtung
  • So implementieren Sie mit MyCat die Lese-/Schreibtrennung von MySQL-Master und -Slave unter Linux
  • Versteckter Overhead von Unix/Linux-Forks
  • Informationen zu UDP in Linux
  • Linux-Swap-Partition (ausführliche Erklärung)
  • C++-Netzwerkprogrammierung unter Linux, Epoll-Technologie und IOCP-Modell unter Windows
  • Wie viele Ports kann ein Linux-Server maximal öffnen?
  • Details zu Linux-Dateideskriptoren, Dateizeigern und Inodes

<<:  Grundlegende Konzepte und allgemeine Methoden des Map-Mappings in ECMAScript6

>>:  Eine kurze Erläuterung der vier häufig verwendeten Speicher-Engines in MySQL

Artikel empfehlen

Grundlagen und Beispiele zur TypeScript-Aufzählung

Inhaltsverzeichnis Vorwort Was sind Enumerationen...

Detaillierte Erklärung der Getter-Verwendung in vuex

Vorwort Mit Vuex können wir im Store „Getter“ def...

Zusammenfassung von 3 Möglichkeiten zum verzögerten Laden eines Vue-Routers

Kein Lazy Loading verwenden importiere Vue von „v...

Vue3 verwendet Axios Interceptor zum Drucken von Front-End-Protokollen

Inhaltsverzeichnis 1. Einleitung 2. Verwenden Sie...

Die Bedeutung der 5 Leerzeichenarten in HTML

HTML bietet fünf Leerzeichen mit unterschiedliche...

Die neuesten 36 hochwertigen kostenlosen englischen Schriftarten freigegeben

01. Unendlichkeit Schriftart herunterladen 02. Ban...

Grundlegende Verwendung und Beispiele von yum (empfohlen)

yum-Befehl Yum (vollständiger Name Yellow Dog Upd...

MySQL etabliert eine effiziente Indexbeispielanalyse

Dieser Artikel beschreibt anhand von Beispielen, ...

Einführung in das Methodenattribut des Formularformulars in HTML

1 Methode ist eine Eigenschaft, die angibt, wie Da...