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    

Artikel empfehlen

Lösung zum automatischen Neustart von MySQL

Vorwort Kürzlich trat in der Testumgebung ein Pro...

Detaillierte Erläuterung der Anwendungsszenarien von Filtern in Vue

filter werden im Allgemeinen verwendet, um bestim...

Detailliertes Tutorial zur Installation von MariaDB auf CentOS 8

Das Datenbankverwaltungssystem MariaDB ist ein Zw...

Einführung in die Leistungsoptimierung von MySQL-Datenbanken

Inhaltsverzeichnis Warum optimieren? ? Wo soll ic...

Reagiert auf verschiedene Arten, Parameter zu übergeben

Inhaltsverzeichnis Übergeben von Parametern zwisc...

Stellen Sie das Vue-Projekt auf einem Linux-Server bereit

Fall 1 vue-cli erstellt das vue3-Projekt, lädt da...

Docker generiert Bilder über Container und übermittelt DockerCommit im Detail

Inhaltsverzeichnis Nachdem Sie einen Container lo...

Allgemeiner Hinweis zum MySQL-Ereignisplaner (unbedingt lesen)

Überblick MySQL verfügt auch über einen eigenen E...