为什么 Ext4 磁盘检查比 NTFS 快得多?

为什么 Ext4 磁盘检查比 NTFS 快得多?

今天我遇到了一种情况,我重启了电脑,系统提示我需要检查磁盘的一致性。大约 10 分钟后(完成“1%),我放弃了,决定回家后再运行它。

相比之下,我家的电脑所有分区都使用 Ext4,磁盘检查(每周运行一次)只需几秒钟。我记得读到过快速磁盘检查是首要任务,但我不知道他们是如何做到这一点的。

那么,Ext4 如何如此快速地进行磁盘检查?NTFS 问世后(约 10 年前)在这方面是否有重大突破?

注意:NTFS 磁盘约为 300 GB,Ext4 磁盘约为 500 GB。两者都约为半满。

答案1

造成性能差异的主要原因有两个,可能的原因。一、主要原因:


与 NTFS 相比,ext4 的性能有所提升

各种基准得出的结论是,实际的 ext4 文件系统可以执行各种读写操作快点比 NTFS 分区更慢。请注意,虽然这些测试不能代表实际性能,但我们可以推断这些结果并以此作为一个原因。

至于 ext4 为何比 NTFS 表现更好,原因有很多。例如,ext4 支持延迟分配直接。不过,性能提升完全取决于您使用的硬件(在某些情况下可能会完全抵消)。

减少文件系统检查要求

ext4 文件系统还能够执行更快的文件系统检查比其他同等日志文件系统(例如 NTFS)更慢。根据 Wikipedia 页面:

在 ext4 中,未分配的块组和 inode 表部分被标记为未分配。这使得 e2fsck 可以在检查时完全跳过它们,并大大减少了检查 ext4 所支持大小的文件系统所需的时间。此功能在 Linux 内核版本 2.6.24 中实现。


现在,两人可能的原因:


文件系统检查实用程序本身

某些应用程序可能会在文件系统上运行不同的例程来实际执行健康“检查”。如果您使用文件系统检查Linux 上的实用程序集与校验Windows 上的实用程序。这些应用程序是在不同的操作系统上为不同的文件系统编写的。我之所以提起这件事,是因为可能的原因是每个操作系统中的低级系统调用都不同,因此您可能无法直接比较使用两个不同操作系统的实用程序。

磁盘碎片

这一点很容易理解,也有助于我们理解文件系统之间的差异。虽然文件中保存的所有数字数据都是相同的,如何存储在硬盘上的数据在不同文件系统之间有很大差异。文件碎片显然会增加访问速度,从而导致速度差异。

答案2

据我所知,ext4 会尝试将数据写入当前没有数据的最大的连续开放 inode 间隙。这大大减少了读取这些文件时的延迟,因为在大多数情况下,单个文件的全部内容大部分都位于单个连续轨道上,因此驱动器磁头在查找包含组成该文件的数据的每个块时不需要进行太多搜索。

它 (ext4) 仍然可能产生碎片,但碎片化程度要小得多,而且不一定会像 NTFS 那样严重影响读/写性能。在 NTFS 上,数据被写入磁头路径中的第一个打开的块。

因此,无论磁头位于何处,只要有开放的块,它都会写入尽可能多的数据,然后当磁头必须移动时,例如,移动到磁盘的另一部分以访问另一个文件时,它会写入磁盘上其他位置,而该文件必须在您刚刚加载的程序中打开,而另一个文件仍在写入中。
这意味着,如果文件很大,它可能会分散在彼此分离的块中,位于不同的轨道上,这就是为什么 NTFS 经常需要进行碎片整理的原因。

这也是为什么服务器一般不使用它的原因,因为服务器上的 I/O 更繁重,数据会全天候不断地从磁盘写入和读取。

另外,我不确定,但如果chkdsk检查每个文件的完整性(我相信它并且确实这样fsck做了),那么由于我刚才描述的 NTFS 碎片,它的速度也会比较慢。

答案3

Windows 永远不需要在启动时检查 NTFS 卷。如果确实需要,则说明出现了严重问题 — 比单纯的 BSOD 或断电要严重得多。很有可能您的某些数据也被破坏了文件系统元数据的因素破坏了。磁盘检查无法检测到这种情况;它的唯一目的是避免进一步损坏。

KB2854570列出了发生这种情况的一些原因。一种是挂载了卷的操作系统休眠,修改卷的内容,然后在卷(重新)连接的情况下从休眠状态恢复。如果这样做,则很有可能出现静默数据损坏。

我不知道为什么您的 ext4 文件系统每周检查一次,但这可能(希望)不是由于每周发生的类似危机。它可能只是进行例行健全性检查,而不是完整的一致性检查。

答案4

因为 UNIX/Linux Ext2/Ext3/Ext4 技术会铺设更紧密的数据位磁条,而 NTFS 铺设的磁性数据位与喷漆罐的效果差不多。NTFS 需要定期进行“碎片整理”,而 Ext2/3/4 很少需要碎片整理。就这么简单。如果您需要从 UNIX/Linux 驱动器上取回某些东西,操作系统会准确地知道从哪里拾取紧密磁化的数据位,而 NTFS 则必须在整个驱动器磁盘上进行搜索才能拾取它们。NTFS 日志系统运行良好,但是,磁头正在玩乒乓球来拾取已放下的磁性位。双 FAT 文件系统运行良好,但是,当您必须跑遍地狱才能收集大量单个位时,如果您不必这样做并且可以拾取整个位串,那么速度会快得多。

相关内容