Gibt es eine Möglichkeit, dem Kernel mitzuteilen, dass er den freien Speicherplatz jetzt zurückgeben soll? Wie schreibe ich etwas in / proc /? Verwenden von Ubuntu 11.10 mit ext4.
Dies ist wahrscheinlich ein altes und sehr wiederholtes Thema. Nachdem ich 0 Speicherplätze erreicht hatte, bemerkte ich nur, dass mein Editor meine geöffneten Quelltextdateien nicht speichern konnte. Zu meinem Entsetzen hatte die Ordnerliste nun eine Größe von 0 Byte.
Ich habe 100 MB große Dateien sowohl vom Benutzer als auch vom Root gelöscht und auch einige Hardlinks ausgeführt.
Kurz zuvor apt-get clean
befanden sich in / var / cache / apt / archives über 900 MB, jetzt sind es nur noch 108 KB:
# du
108 /var/cache/apt/archives
Eine Stunde später noch kein freier Speicherplatz und kann meine im Editor geöffneten wertvollen Dateien nicht speichern, aber beachten Sie die Unterschiede unten:
# sync; df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda4 13915072 13304004 0 100% /
Irgendwelche Vorschläge? Ich habe einige Dienste / Prozesse ausgeschaltet, weiß aber nicht, wie ich überprüfen soll, wer möglicherweise aktiv Speicherplatz aufnimmt.
Mehr Info
# dumpe2fs /dev/sda4
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 884736
Block count: 3534300
Reserved block count: 176715
Free blocks: 422679
Free inodes: 520239
First block: 0
Block size: 4096
Fragment size: 4096
Antworten:
Überprüfen Sie mit
lsof
, ob Dateien geöffnet sind. Speicherplatz wird erst freigegeben, wenn sie geschlossen sind.zeigt an, welche gelöschten Dateien noch geöffnet sind.
quelle
mysqld
Sperren in / tmp, aber vieleapport-gt
Verwendungen ausgestorbener Dateien in / var / lib / apt / lists / partial /, die sich anscheinend angesammelt haben. Also werde ich es vielleichtkillall apport-gt
erst untersuchen.lsof +L1
(offene Dateien auswählen, die nicht verknüpft wurden).Verwenden Sie
lsof
diese Option , um die gelöschte, aber offene Datei zu finden, die noch Speicherplatz beansprucht:Suchen Sie den Eintrag
/proc/<pid>/fd/
, der dem Dateihandle entspricht:Nun, nur
cat /dev/null
in die FD:Beachten Sie, dass der Inode noch offen ist, aber jetzt die Länge 0 hat
quelle
cat
zum Abschneiden. In der Bourne-Shell reicht das einfach aus> /proc/3446/fd/128
.df
zeigt keinen reservierten Speicherplatz anroot
(auch wenn ausgeführt alsroot
):So ändern Sie den Prozentsatz für reservierte Blöcke
Reservierten Platz auf 4% reduzieren
# tune2fs -m4 /dev/sda4
df -h
jetzt zeigte 45M frei.Setzen Sie es zurück auf 5%
# tune2fs -m5 /dev/sda4
quelle
df
Zeigt den für den normalen Benutzer nutzbaren Speicherplatz an. Da apt als root ausgeführt wird, ist der reservierte Speicherplatz nur zum Schutz vor Auffüllungen durch Nicht-Root-Benutzer (= normale Benutzer und Dienste, die ihren eigenen Benutzer haben) nützlich.mkfs
diesen tagen sollte man zb reservieren. 5% oder 300 MB, je nachdem, welcher Wert geringer ist . Ich habe nur einige meiner Server auf 2% neu eingestellt und GBs wieder freigegeben!Wenn Sie in Ubuntu Dateien mit dem Papierkorb gelöscht haben, wurden Ihre Dateien höchstwahrscheinlich nicht vollständig entfernt.
Auch nach dem Leeren Ihres Papierkorbs bleiben Ihre Dateien
~/.local/share/Trash/expunged
bis nach einem Neustart und möglicherweise sogar länger erhalten.Ich habe keinen guten Grund dafür gefunden, aber wenn mir der Speicherplatz ausgeht, werden
rm
die gelöschten Papierkorbdateien immer manuell erstellt .quelle
Erläuterung:
Grep-
lsof
Ausgabe, um nur gelöschte Dateien zu extrahieren. Sed extrahiert die Prozess-ID und die Filedescriptor-ID aus jeder Zeile und erstellt eine Zeichenfolge im Format{pid}/fd/{fid}
. While Schleife und Ausgabe nichts zu jeder Datei, setzen Sie sie auf leer.quelle
Ich frage mich, ob dies
sync
hilfreich ist - aber es sollte nicht so sein, dass Dateisysteme bei den meisten ("vielen"?) Systemen alle 30 Sekunden synchronisiert werden.Ich überprüfe das Kernel-Protokoll (so
dmesg
), um festzustellen, ob etwas Schlimmes vor sich geht, und führe es aus, um festzustellenlsof
, ob noch eine große gelöschte Datei geöffnet ist (ich denke, gelöschte Dateien werden in derlsof
Ausgabe als solche markiert ).Zwei Gründe (einer davon in der Frage, die Sie verknüpfen), die dazu führen können, dass gelöschte Dateien keinen Speicherplatz mehr freigeben, sind:
unlink()
eine Datei mit mehr als einem Link bearbeitet).Aber ich kenne keinen bestimmten Grund, warum das bei so vielen Dateien passieren könnte ...
quelle
sync
hat nie geholfen. Logs sind ein Ubuntu-System und daher ziemlich fehlerhaft. Ja, sie sind normalerweise laut.apport
wird häufig bereitgestellt, da jedes nächtliche Update von apt-get abstürzt, obwohl / var / crash nur 77 MB hat. Es wurde auch bemerkt, dassatd
/ var / log / syslog mit sich wiederholenden Zeilen überflutet wurde, wieatd[8892]: File a0015c0152ab76 is in wrong format - aborting
wahrscheinlich, da die wenigen Dateien in / var / spool / cron / atspool alle 0 groß waren, was das Problem natürlich kreisförmig machtCentOS 6.3 leert auch den Mülleimer, wenn Sie ihn leeren. Ich konnte keinen Weg finden, den Raum zurückzugewinnen, bis ich gerade lief
rm -rf ~/.local/share/Trash/expunged/
. Verursachte viel Kopfkratzen.quelle