硬盘快满时系统通常会很慢

硬盘快满时系统通常会很慢

我使用的是 Ubuntu。我有一个根分区和一个单独的大型 ext4 数据分区。根据说明,数据分区有大约 2GB 的可用空间df,一切正常。

我遇到了一个可重复的行为,即当数据分区填满时,系统通常会变慢。随着数据分区上的可用空间缩小到约 1GB,我发现许多应用程序在正常操作(复制粘贴、加载网页等ls)期间开始停滞。如果我释放空间,问题就会消失。

由于我正在同步区块链,并且必须定期删除内容以腾出空间,因此我经常遇到此问题的起伏。这是一种可靠且可重复的模式。我很确定这是一个硬盘访问问题。

我没有交换分区,还有几 GB 的未使用的 RAM。

  1. 为什么在仍有“大量”(约 1GB)可用空间的情况下会发生这种情况。是否在df撒谎有关可用空间?

  2. 除了删除更多内容外,我还能做些什么来让系统在可用空间不足的状态下更灵敏?我希望系统仍然响应式即使没有可用空间,但事实并非如此。

答案1

这不仅仅是硬盘可用容量的问题,也是可用空间碎片的问题。假设您使用的是硬盘,正常操作会导致许多文件分散在磁盘上,被删除的文件与随机数量的可用空间隔开。

当操作系统需要将某些内容写入磁盘时,它倾向于将文件写入连续的可用空间,而不是将其分割并写入磁盘上的许多不同位置。

硬盘有多个盘片,因此操作系统可以分析哪个盘片最方便写入(即整个磁盘旋转时等待时间最短)。磁盘上任何位置的大量可用空间意味着磁盘旋转到可写入位置之前等待的时间可能更短。随着容量越来越接近满负荷,磁盘旋转到方便写入位置时需要等待的时间会变得更长。

SSD 的重写时间也比写入时间长得多。它们通常比 HDD 快一个数量级,但 SSD 在写入空单元和重写部分使用单元方面的区别非常明显。

相关内容