Re: Verfügbare r Speicherplatz wird nicht richtig berechnet
Christian Perle <[email protected]>
| Newsgroups | gmane.user-groups.linux.dresden |
|---|---|
| Organization | Silmor |
| Message-ID | <[email protected]> |
Hallo Stefan, On Sat, Feb 19, 2022 at 23:46:18 +0100, Stefan Engelhardt wrote: > Ich habe noch den Tipp bekommen, die Inodes könnten aufgebraucht sein. Habe > ich mit "df -i " geprüft. Alle gemounteten Partitionen haben 1% der Inodes > genutzt. Ist also noch genug Luft nach oben. > > Habt ihr noch weitere Ideen warum das nicht richtig berechnet wird? Danke > wieder im voraus. Es gibt noch einen weiteren Grund dafuer, dass die Ausgaben von "du" und "df" stark voneinander abweichen koennen. Hier mal ein Beispiel in meinem Mini-Linux mit einem tmpfs: tmpfs mounten: # mount -t tmpfs testfs /mnt Ein paar Megabyte Daten reinschreiben: # cat /bin/links /bin/links > /mnt/foo # df -h /mnt Filesystem Size Used Available Use% Mounted on testfs 503.8M 9.6M 494.1M 2% /mnt Datei /mnt/foo ueber einen Filedeskriptor durch einen Prozess offen halten: # sleep 86400 < /mnt/foo & Datei /mnt/foo loeschen: # rm /mnt/foo Aus du-Sicht ist das Dateisystem jetzt leer: # du -sh /mnt 0 /mnt Aber df ist anderer Meinung: # df -h /mnt Filesystem Size Used Available Use% Mounted on testfs 503.8M 9.6M 494.1M 2% /mnt Erklaerung: Die "geloeschte" Datei wird noch durch den sleep-Prozess ueber dessen stdin-Filedeskriptor offen gehalten und existiert noch. Erst wenn der sleep-Prozess terminiert, wird der Platz im Dateisystem wirklich freigegeben: # killall sleep [1]+ Terminated sleep 86400 0</mnt/foo # df -h /mnt Filesystem Size Used Available Use% Mounted on testfs 503.8M 0 503.8M 0% /mnt Das Beispiel klingt zunaechst etwas konstruiert, aber dieses Verhalten gibt es auch regulaer in Tools wie qemu/kvm. Anonyme Snapshots werden in qemu/kvm genau so realisiert: $ kvm -m 256 -snapshot -hda minimal.qcow & [1] 13806 $ ls -l /proc/13806/fd total 0 lrwx------ 1 chris chris 64 21. Feb 20:19 0 -> /dev/pts/1 lrwx------ 1 chris chris 64 21. Feb 20:19 1 -> /dev/pts/1 lrwx------ 1 chris chris 64 21. Feb 20:19 10 -> '/tmp/vl.2ySyTa (deleted)' [...] lr-x------ 1 chris chris 64 21. Feb 20:19 9 -> /home/chris/minimal.qcow Die nicht-persistenten Aenderungen werden in der Datei /tmp/vl.2ySyTa gespeichert. Diese wird von qemu/kvm beim Starten erzeugt, geoeffnet und direkt danach geloescht. Selbst wenn qemu/kvm hart duch SIGSEGV oder SIGKILL beendet wird, bleibt diese Temporaerdatei nicht in /tmp zurueck. Das Aufraeumen kann also nicht "vergessen" werden. Gruss, Christian -- Christian Perle chris AT linuxinfotag.de 010111 http://chris.silmor.de/ 101010 LinuxGuitarKitesBicyclesBeerPizzaRaytracing