![Wie kann ermittelt werden, welcher Prozess den gesamten verfügbaren Speicherplatz verbraucht?](https://rvso.com/image/111997/Wie%20kann%20ermittelt%20werden%2C%20welcher%20Prozess%20den%20gesamten%20verf%C3%BCgbaren%20Speicherplatz%20verbraucht%3F.png)
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, df
sieht nur das Problem, nicht du
.
Unten zeige ich beispielsweise mehrere „Schnappschüsse“ von du
und , df
die im Abstand von 60 Sekunden aufgenommen wurden. (Ich habe dies getan, nachdem ich etwas Platz auf der Festplatte geschaffen hatte.) Beachten Sie, dass du
die Ausgabe von konstant bleibt (bei 495G
), aber df
eine stetig schrumpfende Menge an verfügbarem Speicherplatz anzeigt. (Ich bin der Empfehlung gefolgt, die gegeben wurdeHier. Mit anderen Worten, /mnt/root
es 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 du
wird 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 benutzeniotop
um 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]