在 /home/$username 中保留空白有什么好处吗?

在 /home/$username 中保留空白有什么好处吗?

我有 3 个分区 -

/ - 这有接近 200 GB 的东西(比我在不久或遥远的将来可能需要的任何东西都多)

交换 - 2 GB

/home - 200 GB /data - 500 GB(所有这些电影)

现在,与 MS-Windows 不同,在 MS-Windows 上,您需要在根分区(即 C:/)上拥有接近 10 GB 的空间,因为它需要在那里进行所有内务处理,而在 Unix 上,是否需要保留超过 1 GB 的可用空间?

换句话说,/home 下有更多的可用空间会以任何方式提高性能吗?

我在 ext4 上 -

 [$] sudo dumpe2fs -h /dev/sda7 | grep -e ^Reserved -e ^Block

[sudo] password for shirish: 
dumpe2fs 1.43.3 (04-Sep-2016)
Block count:              24413696
Reserved block count:     1220684
Block size:               4096
Reserved GDT blocks:      1018
Blocks per group:         32768
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)

答案1

这取决于所使用的文件系统。

对于ext4最初派生的传统且仍然相当常见的文件系统ext2(并且在某种程度上向后兼容),内核会将文件分散在整个硬盘上以避免文件碎片。然而,要做到这一点,包含文件系统的块设备上需要有一些可用空间。如果可用磁盘空间量非常低,则内核无法以有效的方式组织文件,并且会出现碎片(并且随之而来的性能问题)。

ext*这就是文件系统默认分配 5% 的可用空间供 root 用户使用的原因。虽然可以修改它,但出于显而易见的原因,不建议这样做。但是,即使您不进行修改并最终写入磁盘直到用完所有 95% 的可用磁盘空间,如果这种情况长时间保持原样,性能仍然可能会受到影响,特别是如果您空间几乎用完了,然后开始向分区写入一个大文件。

简而言之,是的,访问该文件系统时可能会导致性能问题,但有一个内置的安全设置可以防止出现最糟糕的情况。

其他文件系统在这方面具有不同的功能,并且可能会或可能不会遇到相同的问题;例如,ZFS 使用写时复制语义,因此它可以在每次写入新块时重新优化存储实际数据的位置。但是,如果您不知道正在使用什么文件系统,那么您很可能正在使用ext4,并且上述内容适用。

答案2

是的,最好有一些可用空间(比如 5%),否则您的系统性能可能会由于文件系统碎片(在机械硬盘驱动器上)而下降,这会导致您的磁头来回读取文件(速度要慢得多)而不是读取连续的文件)。

硬盘空间会影响性能吗?关于服务器故障。

[更新]

请注意,在 Linux ext2/3/4 文件系统上,一小部分块是为 root 保留的。它们还可以防止您的系统过于分散(请参阅文件系统上为 root 保留的空间 - 为什么?更多细节)。您可以使用以下命令查看 ext 文件系统上保留块的数量:

dumpe2fs -h /dev/sdxN | grep ^Reserved

答案3

这取决于您使用系统的用途。对于邮件服务器或 Web 服务器,我希望 /var 中有更多可用空间。对于桌面系统,我通常将 /home 放在软件 RAID-1 阵列上,并在 / 上保留足够的可用空间,这样我就可以转储一些消耗性的大内容(下载的发行版 isos、各种临时使用的虚拟机等)。

基本上,目录树的哪些部分在初始安装/配置后将保持相当静态,哪些部分将增长/收缩/看到大量使用?

相关内容