Heim  >  Artikel  >  System-Tutorial  >  Der Linux-Festplattenspeicher ist ungewöhnlich voll. Wie kann ich das überprüfen?

Der Linux-Festplattenspeicher ist ungewöhnlich voll. Wie kann ich das überprüfen?

WBOY
WBOYnach vorne
2024-02-11 20:57:14860Durchsuche

在服务器运维过程中,我们时常会遇到这样的情况,收到服务器磁盘空间告警:<br>

Linux 磁盘空间异常爆满,该怎么查?

Melden Sie sich beim Server an und sehen Sie es sich über df -Hl an

Linux 磁盘空间异常爆满,该怎么查?

Es stimmt mit den Alarminformationen überein. Dann müssen wir das Verzeichnis oder die Datei finden, die dazu führt, dass der Speicherplatz voll wird.

Wie finde ich Verzeichnisse oder Dateien, die viel Platz beanspruchen?

Eine relativ dumme Methode besteht darin, den Befehl du -hs im Stammverzeichnis zu verwenden, um den von jedem Verzeichnis belegten Speicherplatz aufzulisten

Linux 磁盘空间异常爆满,该怎么查?

Anschließend verwenden Sie die gleiche Methode, um die Suche im entsprechenden Verzeichnis fortzusetzen

Eine relativ effizientere Methode besteht darin, die Verzeichnistiefe der Abfrage über den Parameter -d oder -max- Depth festzulegen. Mit zunehmender Verzeichnistiefe werden Ihnen viele der abgefragten Verzeichnisse angezeigt kann durch grep filtern.

du -h -d 2|grep [GT] |sort -nr  
du -h --max-depth=2|grep [GT] |sort -nr  

Auf diese Weise können Sie nach großen Verzeichnissen suchen, die Speicherplatz in G- oder T-Einheiten belegen, und diese sortieren

Oder Sie können es über find abfragen

find / -type f -size +1G -exec du -h {} \;  

In puncto Effizienz ist find schneller und flexibler als du.

Mit diesen beiden Methoden können wir schnell den Übeltäter finden, der Speicherplatz belegt.

Du denkst, es ist so einfach? Oftmals werden Sie nach langer Suche über find oder du feststellen, dass sich der insgesamt belegte Speicherplatz stark vom von df belegten Speicherplatz unterscheidet, wie in den beiden Bildern oben.

Über df betrachtet beträgt die Festplattennutzung 37 GB, aber über du -hs im Stammverzeichnis betrachtet beträgt die Gesamtsumme fast 10 GB. Es gibt kein verstecktes Verzeichnis. Wer frisst diesen Speicherplatz?

Natürlich ist Speicherplatz durch gelöschte Dateien belegt. Die Dateien werden gelöscht, aber die Ressourcen werden nicht freigegeben.

Ich habe bereits einen sehr nützlichen Befehl eingeführt: lsof, wir können ihn mit dem folgenden Befehl überprüfen

lsof +L1  
Linux 磁盘空间异常爆满,该怎么查?

Aus den Ergebnissen geht hervor, dass eine große Protokolldatei von etwa 28 GB vorhanden ist. Sie wurde gelöscht, der Speicherplatz wurde jedoch nicht freigegeben.

Die entsprechende Lösung besteht darin, die Tomcat-Anwendung neu zu starten, um Speicherplatz freizugeben

Festplattenspeicher wird ohne Grund verbraucht?

Es gibt noch eine andere Frage, die oft gestellt wird, nämlich die Frage, welche Festplatte über df angezeigt wird

Linux 磁盘空间异常爆满,该怎么查?

Sie werden feststellen, dass die Summe aus „Genutzt“ und „Verfügbar“ nicht für die Größe ausreicht und ein Teil davon ohne Grund gegessen wird

Tatsächlich handelt es sich hierbei um eine Sicherheitsrichtlinie des Linux-Dateisystems. Standardmäßig werden 5 % des Speicherplatzes für den Root-Benutzer für den Notfall reserviert. Dadurch kann sichergestellt werden, dass einige wichtige Anwendungen (z. B. Datenbanken) bei voller Festplatte etwas Spielraum haben, sodass sie nicht sofort abstürzen

Wir können den Anteil des reservierten Speicherplatzes über tune2fs ändern

tune2fs -m 1 /dev/vda1  

Den Vorher-Nachher-Vergleich seht ihr im Bild unten

Linux 磁盘空间异常爆满,该怎么查?

Der aufgefressene Platz wird freigegeben!

Das obige ist der detaillierte Inhalt vonDer Linux-Festplattenspeicher ist ungewöhnlich voll. Wie kann ich das überprüfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:lxlinux.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen