So gehen Sie mit dem Problem um, dass die Datei gelöscht wird, der Speicherplatz in Linux jedoch nicht freigegeben wird

So gehen Sie mit dem Problem um, dass die Datei gelöscht wird, der Speicherplatz in Linux jedoch nicht freigegeben wird

Hintergrund des Problems

Das Serverüberwachungssystem eines Geschäftssystems hat eine Frühwarnmeldung gesendet, dass die Festplattennutzungsrate 90 % erreicht hat. Dann habe ich mich beim Server angemeldet, nach größeren Protokolldateien gesucht und sie alle gelöscht (hier war die Grube vergraben). Etwas Festplattenspeicher wurde freigegeben, aber ich war damals nachlässig und habe nicht überprüft, ob der Speicherplatz für die gefundenen und gelöschten Dateien vollständig freigegeben wurde. Ein paar Tage später wurde der Server erneut gewarnt. Ich war verwirrt, warum das Protokoll so schnell wuchs. Nach einer Untersuchung stellte ich fest, dass es daran lag, dass nach dem letzten Dateilöschvorgang ein großer Dateispeicherplatz nicht freigegeben wurde.

Problembehebung und -lösung

Finden Sie die Datendateien, die viel Speicherplatz beanspruchen

#Überprüfen Sie die Festplattenspeichernutzung $ df -h
#Fragen Sie zuerst die Dateien ab, die viel Speicherplatz im Verzeichnis /tmp belegen $ du -sh /tmp/*|sort -nr|head -3
#Frage die Dateien ab, die viel Speicherplatz im /home-Verzeichnis belegen $ du -sh /home/*|sort -nr|head -3
# Nachdem Sie die Datei gefunden haben, löschen Sie sie. Überprüfen Sie nach dem Löschen mit df -h, ob sie freigegeben wurde.

Erklären Sie, warum bei der Dateisuche zuerst die Dateien im Verzeichnis /tmp/* durchsucht werden.

Löschrichtlinie für Linux-Systeme: Linux verfügt nicht über eine Papierkorbfunktion, daher verschiebt der Dienst die zu löschenden Dateien zuerst in das Systemverzeichnis /tmp und löscht dann regelmäßig die Daten im Verzeichnis /tmp.

Viele Server verfügen bei der Installation des Systems nicht über eine separate Partition für /tmp, sodass die Daten im Verzeichnis /tmp möglicherweise einen großen Teil des Speicherplatzes belegen. Sie können zunächst die Dateien im Verzeichnis /tmp löschen, um Speicherplatz freizugeben.

Das Problem des Löschens von Dateien ohne Freigabe von Speicherplatz trat beim Löschen einer Dubbo-Dienstprotokolldatei im /home-Verzeichnisspeicher auf.

Durch das Löschen von Dateien wird kein Speicherplatz freigegeben

Normalerweise kommt es nicht vor, dass nach dem Löschen einer Datei kein Speicherplatz freigegeben wird. Es kann jedoch vorkommen, dass die Datei von einem Prozess gesperrt wird oder ein Prozess weiterhin Daten in die Datei schreibt. Wenn Sie den Speichermechanismus und die Speicherstruktur von Dateien unter Linux verstehen, werden Sie dieses Problem verstehen.

Dateien im Linux-System sind in zwei Teile unterteilt: den Zeigerteil und den Datenteil.

  • Zeigerteil: Er existiert in den Metadaten des Dateisystems. Nachdem wir den Befehl rm zum Löschen der Daten ausgeführt haben, wird der Zeiger aus den Metadaten gelöscht.
  • Datenteil: Die Daten werden direkt auf der Festplatte gespeichert. Wenn der Zeiger aus den Metadaten gelöscht wird, kann der vom Datenteil belegte Speicherplatz überschrieben und neuer Inhalt geschrieben werden.

Der Grund, warum der Speicherplatz nach dem Löschen der Dubbo-Protokolldatei nicht freigegeben wird, liegt darin, dass der Dubbo-Prozess immer noch Daten in diese Datei schreibt. Wenn die Datei gelöscht wird, wird der Zeiger nicht aus den Metadaten gelöscht, sodass die Protokolldatei immer noch Speicherplatz belegt.

So finden Sie solche Dateien

Mit dem Befehl lsof können Sie eine Liste der Dateien abrufen, die gelöscht wurden, aber noch vom Programm belegt sind:

lsof | grep löschen

So geben Sie diesen Speicherplatz frei

Es gibt viele Möglichkeiten, diese Art von Problem zu lösen und Speicherplatz freizugeben: Starten Sie den belegten Prozess neu, starten Sie das Betriebssystem neu und verwenden Sie Befehle. Die ersten beiden Methoden eignen sich am besten für Nicht-Produktionsumgebungen. Versuchen Sie jedoch, für Produktionsumgebungen Befehle zu verwenden, die eigentlich sehr einfach sind:

echo " " >/home/dubbo/log/xxx.log

Auf diese Weise wird der belegte Speicherplatz freigegeben, ohne die weitere Ausführung des Prozesses zu beeinträchtigen.

Damit ist der Artikel zum Umgang mit dem Problem gelöschter Dateien, aber nicht freigegebenem Speicherplatz in Linux abgeschlossen. Weitere Informationen zum Löschen von Linux-Dateien ohne nicht freigegebenen Speicherplatz finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung des Problems, dass der Speicherplatz nach dem Löschen der Linux-Datei nicht freigegeben wird
  • Beispielanalyse von Linux-Dateiverwaltungsbefehlen [Berechtigungen, Erstellen, Löschen, Kopieren, Verschieben, Suchen usw.]
  • Linux-Unlink-Funktion und wie man Dateien löscht
  • Linux implementiert geplante Sicherungen der MySQL-Datenbank und löscht Sicherungsdateien, die älter als 30 Tage sind
  • Linux sichert regelmäßig die MySQL-Datenbank und löscht vorherige Sicherungsdateien (empfohlen)
  • So löschen Sie Ordner, Dateien und Dekomprimierungsbefehle auf Linux-Servern
  • 5 Möglichkeiten zum Löschen oder Entfernen großer Dateiinhalte in Linux
  • Vergleich der Effizienz verschiedener Methoden zum Löschen von Dateien in Linux

<<:  Detaillierte Erklärung der MySQL/Java-Server-Unterstützung für Emoji und Problemlösung

>>:  Lösung für unvollständige Textanzeige im El-Tree

Artikel empfehlen

So konfigurieren Sie den virtuellen Nginx-Host in CentOS 7.3

Experimentelle Umgebung Eine minimal installierte...

Mysql-Datenbankdesign - Analyse von drei Paradigmenbeispielen

Drei Paradigmen 1NF: Felder sind untrennbar; 2NF:...

CSS-Tipps zur Implementierung der Chrome-Tab-Leiste

Dieses Mal schauen wir uns ein Navigationsleisten...

Detaillierte Erklärung der JavaScript-Timer

Inhaltsverzeichnis Kurze Einleitung Intervall fes...

Zwei Implementierungslösungen für die Vuex-Datenpersistenz

Inhaltsverzeichnis Geschäftsanforderungen: Lösung...

Detaillierte Erklärung zur Verwendung von Titel-Tags und Absatz-Tags in XHTML

XHTML-Überschriftenübersicht Wenn wir Word-Dokume...

MySQL-Benutzer und -Berechtigungen und Beispiele zum Knacken des Root-Passworts

MySQL-Benutzer und -Berechtigungen In MySQL gibt ...

Mysql-Optimierungstechniken zum Abfragen von Daten basierend auf der Zeit

Um beispielsweise die gestern neu registrierten B...

HTML-Tutorial: Ungeordnete Liste

<br />Originaltext: http://andymao.com/andy/...

Verwenden Sie die mail()-Funktion von PHP zum Senden von E-Mails

Senden von E-Mails mit der Mail-Funktion von PHP ...