ext4 中的磁盘空间开销

cd1*_*cd1 9 linux filesystems ext4 disk-space-utilization inode

我想知道是否有一些规则(或公式)可以用来确定文件系统在 ext4 分区中将使用多少磁盘空间。例如,在 100 GB 的分区中,我实际可以使用多少?它是否取决于其他参数,如 inode 大小等?

Edu*_*nec 9

我不知道它是否适用于您,但以防万一:大多数情况下,ext2/3/4 的绝大多数明显开销将归因于默认的大量保留块供 root 使用。确保-m 0在创建文件系统时指定(或 1)到 mkfs.ext4 或之后对其进行tune2fs调整。默认值为 5,代表总块的 5%,在大多数情况下可能过多。

  • 保留空间有两个目的:降低碎片机会和为 fsck 留出一些空间。我不建议将其设为 0。 (4认同)
  • 除非是要存储一些永远不会改变的档案内容,否则从长远来看,将文件系统填满将导致重大性能问题。碎片和随机磁盘外问题的可能性将是您的第一个迹象。不过,对于非常大的文件系统来说,使用 5% 可能太高了。在任何情况下,inode 结构都会导致约 1.6% 的开销,因此在最好的情况下,您应该期望使用约 95% 的原始块存储。为了获得最佳性能,目标接近 80% 是有意义的。 (2认同)

psu*_*usi 7

最重要的开销来自 inode 表,因此它显然取决于您分配的 inode 数量。使用默认选项,每 128 mb 磁盘获得 2 mb(每个 8192 x 256 字节)的 inode,或 1.6% 的开销。


mdp*_*dpc 2

这个问题很难回答,因为数据空间量会随着文件数量、文件大小、ACL、根保留空间、块大小等的变化而变化。这个问题实际上没有一个容易固定的答案。