Wie gebe ich aus, wie viel von der nominalen Dateigröße tatsächlich mit Daten gefüllt ist? Wie vmtouchzeigt, wie viel Datei derzeit im Speicher ist ...
Ich erwarte, dass der Workflow so aussieht:
$ fallocate -l 1000000 data
$ measure_sparseness data
100%
$ fallocate -p -o 250000 -l 500000 data
$ measure_sparseness
50%
Umgehung: Verwenden Sie du -bshund du -shund vergleichen sie.
filefrag data-> mehrere FIBMAP: Invalid argument-> data: 1 extent found...
filefrag -efunktioniert perfekt auf XFS und ext4 mindestens. Ich habe nicht an anderen getestet. Es verwendet FIEMAP (Extent-Map) mit einem Fallback auf FIBMAP. Wenn diese ioctlnicht funktionieren, wird es nicht nützlich sein.
filefraghat keine -eOption.
e2fsprogs? Ich bin mir ziemlich sicher, dass es keine neue Funktion ist. Es gibt auch eine -vOption, die die gleichen ausführlichen Informationen ausgibt (plus einige zusätzliche Kopfzeilen). Vielleicht wirst filefragdu das haben. Im Gegensatz dazu xfs_bmapweist es keine expliziten Löcher mit getrennten Linien auf, sondern weist nur Diskontinuitäten in der Dateiposition auf. Wie auch immer, ich bin nicht überrascht, dass tmpfsFIEMAP nicht unterstützt wird, da es kein Block-Gerät als Backup-Speicher gibt, sodass es keinen sinnvollen Wert für die Position der Extents gibt.
filefragfür jedes Dateisystem undxfs_bmap -vplfür XFS sind sie wichtige Tools, um zu zeigen, wo sich die Daten befinden (und wo sich die vorab zugewiesenen ungeschriebenen Speicherbereiche befinden), wenn Sie mit spärlichen Dateien und Lochen herumspielen.