Como produzo quanto do tamanho nominal do arquivo é realmente preenchido com dados? Como vmtouch
mostra quanto do arquivo está atualmente na memória ...
Espero que o fluxo de trabalho seja assim:
$ fallocate -l 1000000 data
$ measure_sparseness data
100%
$ fallocate -p -o 250000 -l 500000 data
$ measure_sparseness
50%
Solução: use du -bsh
e du -sh
e compará-los.
filefrag data
-> múltiplo FIBMAP: Invalid argument
-> data: 1 extent found
...
filefrag -e
funciona perfeitamente em XFS e ext4 pelo menos. Eu não testei em outros. Ele usa FIEMAP (mapa de extensão), com um fallback para o FIBMAP. Se esses ioctl
s não funcionarem, não será útil.
filefrag
não tem -e
opção.
e2fsprogs
? Tenho certeza de que não é um recurso recente. Há também uma -v
opção que imprime as mesmas informações detalhadas (mais algumas linhas de cabeçalho extras). Talvez você filefrag
tenha isso. Ao contrário xfs_bmap
, porém, ele não indica explicitamente os furos com linhas separadas, apenas possui descontinuidades na posição do arquivo. De qualquer forma, não estou surpreso que tmpfs
não seja compatível com o FIEMAP, porque não existe um dispositivo de bloco como uma loja de suporte, portanto, não há valor sensato para a localização das extensões.
filefrag
para qualquer sistema de arquivos exfs_bmap -vpl
para o XFS, são as principais ferramentas para mostrar onde estão os dados (e onde estão as extensões não escritas pré-alocadas) ao brincar com arquivos esparsos e fazer furos.