为什么主分区越多速度越快?

为什么主分区越多速度越快?

为什么使用 Linux 时主分区越多速度越快?

请给出一些真实的例子;我知道一些理论原因,但我不太理解它们。

答案1

主要原因可能是缓存,因为 Linux 单独缓存文件系统。

单个驱动器和单个分区意味着文件系统上的所有数据都会在缓存中相互竞争。因此,假脱机数据和二进制文件、用户文件和 Web 服务器都使用这个大缓存。

如果进行较大的数据传输(下载、流媒体电影等),这些实际上会刷新单个缓存,因此经常使用的二进制文件等会从缓存中消失,必须从磁盘重新读取 - 这可能需要一段时间,因为正在进行大量数据传输,所以驱动器负载很重!

如果您有多个分区,则每个分区都会单独缓存。因此,即使 Web 服务器缓存负载过重,二进制文件仍有机会被缓存。

然而这取决于使用的缓存策略。据我所知,目前有几种不同的缓存策略,但遗憾的是我没有时间深入研究。

也可能有一个第二个原因然而今天我认为这不再是类似的相关:

在内核中维护较大的结构需要更多 RAM。以前 RAM 不多(比如 256 MB)时,文件系统可能会变得非常大,以至于如果不启用交换,您就无法对其进行 fsck。如今,这通常不再是任何问题。

但是,结构越大,刷新页面的频率就越高。分区越小,结构就越小,因此,使用频率较高的部分仍存在于内核中的可能性就越高。

在过去,您甚至可以在几乎空闲的系统上看到这种情况,因为即使没有更大的磁盘访问权限,它们也无法将所有内容保存在内存中。

但今天实际上有足够的内存,我认为这并不重要。

A第三个原因可能与电梯有关,比如 Linux 如何访问数据。

Linux 尝试重新安排磁盘访问,使得驱动器的磁头的工作方式或多或少像电梯一样,尝试使用一些优化的路径上下移动。

将相似的数据放在一起可以提高访问效率,因为这样您就可以以更可预测的方式读取所请求信息的部分内容。因此,当这些信息放在一起时,对 /usr/ 等分区的访问会得到改善。

然而这一点在今天也变得越来越不重要,因为新兴的固态硬盘没有物理驱动器头,所以寻道时间变得越来越不重要。

有效期註釋:

随着 BTRFS 和 ZFS 等所有新文件系统的出现,过去 30 年左右关于巧妙分区的所有发现都变得毫无意义。这些文件系统不再有“分区”的概念,所以我认为对驱动器进行分区将变得越来越过时。

如今,LVM您不再需要简单地对驱动器进行分区,而是将卷动态映射到其他地方。卷可能会被分成几个部分,甚至可能分布在多个磁盘上。企业经常使用 SAN,在那里您不再拥有像真正的物理磁盘一样的东西(从计算机的角度来看)。

因此,对于某些特定应用程序(数据库原始设备),磁盘设置可能对提高访问速度有些重要。但是,除了这种罕见的情况外不值得尝试找到一个超级聪明、史上最佳和完美的分区方案,因为如果您注意到任何效果,这只会加快低百分比区域的速度。

正确布局应用程序(网格计算等)可以提供更多速度改进的可能性。或者代表消费市场:

不要像买苹果(你吃的苹果)那样购买电脑。只需多花几美元,你就可以买到一个速度更快、耗电量更少的系统 - 从长远来看,这是值得的。

所以坚持你喜欢的任何分区方案,只要买一些更聪明的方案——这将最大程度地提高性能;)

答案2

将磁盘划分为多个分区而不是将所有文件存储在一个大分区中,可以大大提高性能。原因如下:

  • 外磁柱比内磁柱具有更高的传输速率。因此,如果您将最常访问的文件放在覆盖这些磁柱的分区中,它们将恢复得更快。或者,如果您想要更快的启动速度,请将系统分区放在这些磁柱中。
  • 将不断变化的文件夹(/tmp、/var、/home)与系统文件夹(/、/usr)分开,即将它们放在单独的分区中,可以防止系统文件碎片化(例如,当您进行系统升级时),从而保证系统和应用程序启动时保持良好的性能。
  • 考虑哪些文件被访问得更频繁,并将它们放在靠近每个文件的分区中,可能会因较少的磁头移动而产生更好的性能。

因此,不仅仅是“主分区越多越好”,您还应该考虑了解系统的使用方式,并在规划磁盘分区时充分利用这些知识,这可能会为您带来更好的性能。

相关内容