Як вивести, скільки фактично номінального розміру файлу заповнено даними? Як 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 є ключовими інструментами для показу, де є дані (та де попередньо виділені неписані розширення) під час гри з розрідженими файлами та пробиванням отворів.