在服务器运维过程中,我们时常会遇到这样的情况,收到服务器磁盘空间告警:<br>
Melden Sie sich beim Server an und sehen Sie es sich über df -Hl an
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.
Eine relativ dumme Methode besteht darin, den Befehl du -hs im Stammverzeichnis zu verwenden, um den von jedem Verzeichnis belegten Speicherplatz aufzulisten
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
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
Es gibt noch eine andere Frage, die oft gestellt wird, nämlich die Frage, welche Festplatte über df angezeigt wird
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
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!