Wie kann ermittelt werden, welcher Prozess den gesamten verfügbaren Speicherplatz verbraucht?

Wie kann ermittelt werden, welcher Prozess den gesamten verfügbaren Speicherplatz verbraucht?

Plötzlich ist der gesamte verfügbare Speicherplatz /verschwunden.

Wenn ich Platz auf der Festplatte schaffe (indem ich beispielsweise ca. 50 GB Material lösche), steht mir nach ein paar Minuten wieder 0 GB freier Speicherplatz zur Verfügung (laut df).

Offensichtlich verbraucht ein Prozess sehr schnell Speicherplatz, aber ich kann nicht herausfinden, was es ist.

Eines ist jedoch sicher: Was auch immer es ist, es müssen viele kleine Dateien erstellt werden, da sich auf der Festplatte keine Dateien befinden, die größer als 10 GB sind, und alle Dateien, die größer als 1 GB sind, viel älter als heute.

Wie kann ich herausfinden, was Speicherplatz belegt?


FWIW, dfsieht nur das Problem, nicht du.

Unten zeige ich beispielsweise mehrere „Schnappschüsse“ von duund , dfdie im Abstand von 60 Sekunden aufgenommen wurden. (Ich habe dies getan, nachdem ich etwas Platz auf der Festplatte geschaffen hatte.) Beachten Sie, dass dudie Ausgabe von konstant bleibt (bei 495G), aber dfeine stetig schrumpfende Menge an verfügbarem Speicherplatz anzeigt. (Ich bin der Empfehlung gefolgt, die gegeben wurdeHier. Mit anderen Worten, /mnt/rootes zeigt auf /.)

# while true; do du -sh /mnt/root && df -h /mnt/root; sleep 60; done
495G    /mnt/root
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1       880G  824G   12G  99% /mnt/root
495G    /mnt/root
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1       880G  825G   11G  99% /mnt/root
495G    /mnt/root
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1       880G  827G  8.9G  99% /mnt/root
495G    /mnt/root
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1       880G  827G  8.1G 100% /mnt/root
495G    /mnt/root
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1       880G  828G  7.5G 100% /mnt/root

Antwort1

Es handelt sich um gelöschte Dateien, daher duwird der belegte Speicherplatz nicht registriert, aber df...

Gelöschte Dateien verschwinden erst, wenn der Eigentümerprozess gestoppt wird; solange dies nicht geschieht, bleiben sie in Verwendung.

Um den verantwortlichen Prozess zu finden, empfehle ich Ihnen Folgendes:

sudo lsof -nP | grep '(deleted)'

Dann zum Beenden des Prozesses.

sudo kill -9 $(lsof | grep deleted | cut -d " " -f4)

Antwort2

Du könntest benutzeniotopum zu sehen, welche Prozesse die meisten Schreibvorgänge auf der Festplatte durchführen.

Beispiel:

Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
    3 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
    6 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/0]
    7 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/0]
    8 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/1]

verwandte Informationen