Linux Root-Partition voll, Speicher freigeben

Durch Ansammlung von Logs und temporärem Dateimüll kann es vorkommen, daß sich die Rootpartition zusehends anfüllt. Ist der Speicherplatz erschöpft, so kann das System beispielsweise keine Updates mehr installieren und in einigen Fällen ist dies das erste wahrnehmbare Anzeichen dafür, daß etwas aus dem Ruder gelaufen ist.

Eine vollständig gefüllte Root-Partition tritt überwiegend bei Systemen auf, wenn System und Benutzerdaten auf unterschiedlichen Partitionen liegen. Ist dies nicht der Fall, weil alle Daten ohne Unterschied auf ein und derselben Partition gespeichert werden, so wird es bis zur vollständigen Erschöpfung des Speichers länger dauern. Auslöser sind einige Prozesse, die im Laufe der Zeit zunehmend mehr Logdateien anlegen und nicht automatisch nach einem angemessenen Zeitraum wieder entfernen.
Ein übliches Problem sind Systemlogs die in Systemen mit Systemd angelegt werden.

Ist der Speicherplatz unserer Root-Partition vollgelaufen, so lohnt es sich als erstes dessen Logs nachzusehen.

journalctl --disk-usage

Der Speicherverbrauch für Systemd umfasst nach einiger Gebrauchszeit leicht mehrere Dutzend GB. Haben wir die empfohlenen 30-50 GB für unsere Systempartition reserviert, so wird schnell klar warum dies zu einem Problem wird. Wir weisen also Systemd an nur die aktuellsten Logs bis zu einer maximalen Größe aufzubewahren.

sudo journalctl --vacuum-size=500M

In diesem Fall verbleiben also nur noch 500MB für Logs und der Rest wird freigegeben. Anschließend wollen wir den Prozess automatisieren und den verfügbaren Speicherplatz für Systemd Logs begrenzen.

sudo nano /etc/systemd/journald.conf

In der Konfigurationsdatei wird die folgende Zeile unkommentiert (d.h. vorangestelltes ‚#‘ entfernen) und ergänzt um nur die aktuellsten 500MB zu erhalten.

SystemMaxUse=500M

Der Wert 500M kann nach eigenem Geschmack frei gewählt werden.

Andere Verbraucher identifizieren

Neben Systemd kann es natürlich andere Dienste geben, die ähnlich verschwenderisch mit Speicherplatz umgehen. Ein erster Schritt diese aufzufinden ist eine Analyse der Dateiverzeichnisse mit dem Größten Speicherverbrauch.

sudo du -hsx /* | sort -rh | head -n 40

Angenommen ein Verzeichnis mit sehr hohem Speicherverbrauch ist /var/log, wo sämtliche Prozesse ihre Logs ablegen sollen (aber nicht immer tun). Dann können wir dieses Verzeichnis etwas genauer anschauen.

du -ha /Pfad/zum/Verzeichnis | sort -n -r | head -n 30

Auf diese Weise können wir die größten Verbraucher identifizieren und entsprechende Maßnahmen einleiten.

2 Gedanken zu „Linux Root-Partition voll, Speicher freigeben“

  1. Hallo,
    die Reduzierung von Systemd auf 500M hat mich in letzter Not gerettet, da mein System sich nicht mehr hat booten lassen.
    Das war der beste Tipp ever!

    Vielen Dank dafür.
    Detlef

    Antworten

Schreibe einen Kommentar