Auf einem virtualisierten Server unter Ubuntu 10.04 meldet df Folgendes:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 7.4G 7.0G 0 100% /
none 498M 160K 498M 1% /dev
none 500M 0 500M 0% /dev/shm
none 500M 92K 500M 1% /var/run
none 500M 0 500M 0% /var/lock
none 500M 0 500M 0% /lib/init/rw
/dev/sda3 917G 305G 566G 36% /home
Das verwirrt mich aus zwei Gründen: 1.) df sagt, dass / dev / sda1, gemountet bei /, eine Kapazität von 7,4 Gigabyte hat, von denen nur 7,0 Gigabyte verwendet werden, obwohl es zu 100 Prozent voll ist; und 2.) Ich kann Dateien erstellen auf / so hat es eindeutig Platz übrig.
Möglicherweise ist das Verzeichnis / www ein symbolischer Link zu / home / www, das sich auf einer anderen Partition befindet (/ dev / sda3, eingehängt in / home).
Kann jemand Vorschläge machen, was hier vor sich geht? Der Server scheint ohne Probleme zu funktionieren, aber ich möchte sicherstellen, dass es keine Probleme mit der Partitionstabelle, den Dateisystemen oder etwas anderem gibt, die später zu einer Implosion (oder Explosion) führen können.
Antworten:
Möglicherweise hat ein Prozess eine große Datei geöffnet, die inzwischen gelöscht wurde. Sie müssen diesen Prozess beenden, um Speicherplatz freizugeben. Möglicherweise können Sie den Prozess mithilfe von lsof identifizieren. Unter Linux sind gelöschte und noch offene Dateien lsof bekannt und werden in der Ausgabe von lsof als (gelöscht) markiert.
Sie können dies mit überprüfen
sudo lsof +L1
quelle
df -ah
ich gefragt wurde , war die Festplatte voll, aberdu -sh /
ich sollte freien Speicherplatz haben. Nach dem Neustart von uwsgi habe ich viel freien Speicherplatz!5% (standardmäßig) des Dateisystems sind für Fälle reserviert, in denen das Dateisystem voll ist, um schwerwiegende Probleme zu vermeiden. Ihr Dateisystem ist voll. Aufgrund des 5% -Puffers geschieht nichts Katastrophales - Root darf diesen Sicherheitspuffer verwenden, und in Ihrem Setup haben Nicht-Root-Benutzer keinen Grund, in dieses Dateisystem zu schreiben.
Wenn Sie Daemons haben, die als Nicht-Root-Benutzer ausgeführt werden, jedoch Dateien in diesem Dateisystem verwalten müssen, kommt es zu Problemen. Ein häufiger solcher Daemon ist
named
. Ein anderer istntpd
.quelle
/
) gespeichert zu haben . Dies wird im Allgemeinen als eine schlechte Sache angesehen (denn wenn etwas durcheinander/
kommt und die Welt untergeht ), aber Linux-Distributionen tun dies weiterhin, weil es "einfacher" ist. Ich würde von der Suche in starten/var
(insb./var/log
) Für große Logfiles.du -hs /
(als root) hilft Ihnen dabei, die größten Verzeichnisse zu finden und weist Sie möglicherweise auf das hin, was aufgeräumt werden muss.Möglicherweise haben Sie keine Inodes mehr. Überprüfen Sie die Inode-Verwendung mit diesem Befehl:
quelle
Die meisten Linux-Dateisysteme reservieren 5% Speicherplatz nur für den Root-Benutzer.
Sie können dies mit z
Sie können den reservierten Betrag folgendermaßen ändern:
In den meisten Fällen scheint der Server weiterhin einwandfrei zu funktionieren - vorausgesetzt, alle Prozesse werden als "root" ausgeführt.
quelle
Ich hatte dieses Problem und war verblüfft darüber, dass das Löschen verschiedener großer Dateien die Situation nicht verbesserte (ich wusste nichts über den 5% -Puffer), obwohl ich hier einige Hinweise hatte
Von root gingen die größten Verzeichnisse auf, die sich durch wiederholtes Ausführen ergaben:
bis ich ein verzeichnis für webserver logdateien bekam, die einige absolut massive logs hatten
was ich mit abgeschnitten habe
plötzlich war df -h zu 48% ausgelastet!
quelle
Zusätzlich zu den bereits vorgeschlagenen Ursachen können in einigen Fällen auch folgende auftreten:
du -md 1
erneut. Korrigieren Sie die Situation, indem Sie versteckte Ordner an einen anderen Ort verschieben oder an einem anderen Ort einhängen.quelle
df -h
rundet die Werte. Sogar die Prozentsätze sind gerundet. Lassen Sie das weg-h
und Sie sehen feinkörnigere Unterschiede.Oh. Und ext3 und Derivate reservieren für genau diese problematische Konstellation einen Prozentsatz (Standard 5%) für das Dateisystem. Wenn Ihr Root-Dateisystem wirklich voll wäre (0 Byte verbleiben), können Sie das System nicht booten. Der reservierte Teil verhindert dies also.
quelle
Ich habe ein großes Update mehrerer Bibliotheken durchgeführt und es gab viele unnötige Bibliotheken und temporäre Dateien, so dass ich im Ordner "/" Speicherplatz freigebe, indem ich Folgendes verwende:
Und leeren Sie Ihren Müll
quelle
Überprüfen Sie die / lost + found, ich hatte ein System (Centos 7) und einige Dateien in der / lost + found aßen den gesamten Speicherplatz auf
quelle
Wenn Ihre Partition btrfs ist, ist möglicherweise ein Teilvolumen vorhanden, das Speicherplatz belegt. Ein btrfs-Dateisystem kann viele Subvolumes haben, von denen nur eines gemountet ist. Mit können Sie
btrfs subvolume list <dir>
alle Subvolumes auflisten undbtrfs subvolume delete <dir>/<subvolume>
eines löschen. Stellen Sie sicher, dass Sie nicht den standardmäßig bereitgestellten löschen.quelle