btrfs:如何计算btrfs压缩节省的空间?

btrfs:如何计算btrfs压缩节省的空间?

我已经为我的 btrfs 分区启用了压缩(使用 挂载compress=lzo)并使用了一段时间。

我很好奇多少钱益处压缩给我带来了并且我很感兴趣节省空间价值(sum of all file sizes) - (actual used space)

有没有任何直接的方法来获取这个值,或者我是否必须编写一个脚本来总结例如df输出并将其压缩为btrfs filesystem df输出?

答案1

在 Debian/Ubuntu 中:

apt install btrfs-compsize
compsize /mnt/btrfs-partition

在费多拉中:

dnf install compsize
compsize /mnt/btrfs-partition

输出是这样的:

Processed 123574 files, 1399139 regular extents (1399139 refs), 69614 inline.
Type       Perc     Disk Usage   Uncompressed Referenced  
TOTAL       73%      211G         289G         289G       
none       100%      174G         174G         174G       
lzo         32%       37G         115G         115G

它需要 root ( sudo) 才能工作(否则SEARCH_V2: Operation not permitted)。

它可以用于任何目录(总计子树),而不仅仅是挂载点的整个文件系统。

在使用 zstd 的系统上,但一些旧文件仍然使用 lzo 压缩,每个文件都会有行。 (该Perc列是该行的磁盘大小/未压缩大小,而不是以这种方式压缩的总数。越小越好。)

答案2

根据维基百科,没有对此的内置支持,但是压缩工具可以测量 btrfs 上的压缩。

输出df将类似于btrfs fi df报告使用了多少磁盘空间,而不是未压缩的大小。维基百科说你可以通过df比较压缩文件之前和之后的输出来“猜测” 。另一种选择是使用一些程序来汇总实际数据,例如rsync --stats在试运行时,它将报告读取了多少数据。

相关内容