Linux 上的 NTFS 支持,处理大型稀疏文件,影响性能

Linux 上的 NTFS 支持,处理大型稀疏文件,影响性能

背景 :

我尝试在最近的 Knoppix 环境中使用 ddrescue 从故障硬盘中恢复数据。起初,我将输出存储到 NTFS 分区,但在某些时候,复制速度变得非常慢(~600KB/s),我在该工具的一些法语指南上看到,不建议恢复到 NTFS,尤其是对于大容量,因为据报道这会导致速度大幅下降。然后我切换到 ext4,性能似乎有了显著改善。(见这个问题

我注意到,ddrescue 生成的输出图像文件的“磁盘大小”远低于其实际大小,这意味着 ddrescue 以某种方式仅分配已成功从输入中读取的数据,导致输出“部分稀疏”,即使未使用 -S 开关(“稀疏写入”)。在这种情况下,使用 -S 开关会导致实际从输入中读取的空扇区在输出中也未分配,从而使其“完全”稀疏。(见另一个问题

问题 :

如何解释 NTFS 和 ext4 之间的这种性能差距?它确实与稀疏性有关吗?Linux NTFS 驱动程序是否已知在处理大型稀疏文件时会遇到麻烦?

答案1

首先,您可能使用的是 NTFS-3G,它是在用户空间而不是内核中实现的。仅这一点就意味着,使用 NTFS 时,上下文切换次数至少是使用 ext4 时的两倍。

除此之外,我无法对问题可能是什么发表太多评论,只能提到根据我自己的测试,NTFS 似乎不能在 LInux 上非常有效地处理稀疏文件,无论是使用 NTFS-3G,还是使用内核的本机驱动程序(几乎没有人使用,因为 NTFS-3G 具有更好的整体支持)。

相关内容