Jak znaleźć rozmiar skompresowanego / nieskompresowanego pliku na btrfs?

7

Korzystam z btrfs na jednym z moich dysków twardych. Chciałbym poznać rzeczywisty rozmiar pliku i rozmiar skompresowanego pliku na btrfs. Chcę zobaczyć współczynniki kompresji na plik. Na przykład system plików NTFS może dostarczyć takich informacji.

Używam opcji compress-force = zlib w moim fstab. Używam Debian Squeeze 3.2.0-0.bpo.4-amd64

dzięki

Yarun może
źródło
Jest to łatwe dla całego systemu plików (porównaj wyjście df z wyjściem du), ale nie wiem, jak to zrobić dla pojedynczych plików, naprawdę interesuje mnie odpowiedź na to pytanie.
FSMaxB,

Odpowiedzi:

2

istnieje narzędzie osoby trzeciej, które może to zrobić.

https://github.com/kilobyte/compsize

stosowanie:

ayush@devbox:/code/compsize$ sudo compsize /opt
Processed 54036 files, 42027 regular extents (42028 refs), 27150 inline.
Type       Perc     Disk Usage   Uncompressed Referenced  
Data        82%      5.3G         6.4G         6.4G       
none       100%      4.3G         4.3G         4.3G       
zlib        37%      427M         1.1G         1.1G       
lzo         56%      588M         1.0G         1.0G  
Ayush
źródło
1

Ciekawe pytanie, ale wydaje się, że na razie byłoby to negatywne.

Według oficjalnych FAQ ( https://btrfs.wiki.kernel.org/index.php/FAQ ) przyczyną jest to, że informacje nie są po prostu przechowywane w systemie plików. Istnieje łatka dla jądra ( https://patchwork.kernel.org/patch/117782/ ), ale znowu, to zlicza tylko używane bloki (więc stosunek jest zaokrąglany do rozmiaru bloku, a więc wyłączany do 4KB).

Gdyby narzędzie zostało wykonane (byłoby to możliwe), byłoby to wyjątkowo nieefektywne. Program musiałby rozpakować plik, aby określić współczynnik kompresji.

Mark Lopez
źródło
3
dlaczego miałby dekompresować plik „ls”, a wszystkie inne wywołania FS wyświetlają nominalny rozmiar pliku? Czy stosunek nie byłby równy „UsedBlocks * 100 / NominalUsedBlocks = ratio”?
Andre de Miranda