Как вывести, сколько номинального размера файла фактически заполнено данными? Как vmtouch
показывает, сколько файлов в данный момент находится в памяти ...
Я ожидаю, что рабочий процесс будет таким:
$ fallocate -l 1000000 data
$ measure_sparseness data
100%
$ fallocate -p -o 250000 -l 500000 data
$ measure_sparseness
50%
Временное решение: использование du -bsh
и du -sh
и сравнить их.
filefrag data
-> несколько FIBMAP: Invalid argument
-> data: 1 extent found
...
filefrag -e
отлично работает на XFS и ext4 по крайней мере. Я не проверял на других. Он использует FIEMAP (карта экстентов) с отступлением к FIBMAP. Если эти ioctl
не работают, то это не будет полезно.
filefrag
нет -e
выбора.
e2fsprogs
? Я уверен, что это не последняя функция. Там же также -v
вариант , который печатает ту же информацию многословной (плюс некоторые дополнительные строки заголовка). Может быть, у вас filefrag
будет это. В отличие от xfs_bmap
этого, он явно не указывает дырки отдельными линиями, он просто имеет разрывы в позиции файла. В любом случае, я не удивлен, что tmpfs
не поддерживает FIEMAP, потому что нет блочного устройства в качестве резервного хранилища, поэтому нет разумного значения для местоположения экстентов.
filefrag
для любой файловой системы иxfs_bmap -vpl
для XFS являются ключевыми инструментами, показывающими, где находятся данные (и где находятся предварительно выделенные неписанные экстенты) при игре с разреженными файлами и пробиванием дырок.