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

Einführung in ApplicationHost.config (IIS-Speicherkonfigurationsbereichsdatei)

Nehmen Sie für eine neu erstellte Website ASP.NET...

So ändern Sie den Standardzeichensatz von MySQL auf dem MAC auf UTF-8

1. Überprüfen Sie den Zeichensatz des standardmäß...

So erstellen Sie ein Django-Projekt und stellen eine Verbindung zu MySQL her

1: django-admin.py startproject Projektname 2: CD...

Detailliertes Beispiel einer MySQL-Unterabfrage

Unterabfrageklassifizierung Klassifizierung nach ...

Beispielcode zur Implementierung der Formularvalidierung mit reinem CSS

In unserem täglichen Geschäft ist die Formularval...

So legen Sie den Standardwert für den Datums-/Uhrzeittyp in MySQL fest

Beim Ändern des Standarddatums-/Uhrzeitwerts über...

Einführung in die Installationsmethode in Vue

Inhaltsverzeichnis 1. Weltweit registrierte Kompo...

Detaillierte Erklärung des CSS3-Rotationswürfelproblems

3D-Koordinatenkonzept Wenn sich ein Element dreht...

Vue realisiert den Prozentbalkeneffekt

In diesem Artikel wird der spezifische Code von V...

Detaillierte Erläuterung der Verarbeitung der drei Docker Nginx-Protokolle

Da die Kollegen im Unternehmen die Standardausgab...