Eine volle Platte zerlegt Dinge, die nichts miteinander zu tun zu haben scheinen: Sessions speichern nicht mehr, Uploads scheitern, die Datenbank verweigert Schreibvorgänge, und die Hälfte davon antwortet mit 503. Prüfen Sie zuerst die Platte, wann immer mehrere unzusammenhängende Dinge gleichzeitig kaputtgehen.

df -h

Finden, was ihn verbraucht

Arbeiten Sie sich von der Wurzel abwärts, eine Ebene nach der anderen. Das druckt die zehn größten Dinge eines Verzeichnisses, und wenn Sie dem größten nach unten folgen, finden Sie die Ursache in drei, vier Schritten.

du -h --max-depth=1 / 2>/dev/null | sort -h | tail -10

Die vier üblichen Ursachen

  • Logs, die nie rotieren. /var/log wächst grenzenlos, wenn logrotate für einen später hinzugefügten Dienst nicht eingerichtet ist.
  • Alte Sicherungen auf derselben Platte. Eine Sicherung auf der Platte, die sie schützt, ist keine Sicherung - und meist das größte Verzeichnis auf der Maschine.
  • Session-Dateien. Millionen winziger Dateien in /var/lib/php/sessions - sie kosten Platz und, schlimmer, Inodes.
  • Ein entlaufenes Fehlerlog. Eine einzige sich wiederholende Warnung kann an einem Tag Gigabytes schreiben.

Sicher Platz schaffen

Löschen Sie kein Log, in das ein Prozess gerade schreibt. Der Platz kommt erst zurück, wenn der Prozess die Datei schließt - die Platte bleibt also voll, und das Log ist weg. Kürzen Sie es stattdessen auf null.
: > /var/log/nginx/error.log

Inodes alle, nicht Platz

Zeigt df -h freien Platz und Schreibvorgänge scheitern trotzdem, sind Ihnen die Inodes ausgegangen - zu viele Dateien, egal wie groß.

df -i
Richten Sie eine Überwachung ein, die bei 80 % warnt, nicht bei 100 %. Eine Platte, die um drei Uhr nachts volläuft, legt die Website lahm, bis jemand aufwacht; eine Warnung bei 80 % ist eine Aufgabe für den Vormittag.