Ubuntu 上的 NTFS 写入速度非常慢(

Ubuntu 上的 NTFS 写入速度非常慢(

复制大型文件或使用 测试写入速度时dd,在使用 NTFS 文件系统的驱动器上,我可以获得的最大写入速度约为 12-15MB/s。我测试了多个驱动器(均使用 SATA 连接),在 Windows 上或使用 ext4 格式化时,它们的写入速度均为 100MB/s+,因此这不是对齐或驱动器问题。

top显示该进程的 CPU 使用率很高mount.ntfs

AMD 双核处理器(2.2 GHz)
内核版本:3.5.0-23-generic
Ubuntu 12.04
ntfs-3g版本:两者2012.1.15AR.1(Ubuntu 默认版本)和2013.1.13AR.2

我该如何修复写入速度?

答案1

更新:使用较新版本的 Ubuntu。较新版本的 Ubuntu(例如 22.04+)应该性能更好,并且默认使用更大的写入。感谢@dmitry-grigoryev谁澄清了回答如下

big_writes已弃用

如果您的 fuse/libfuse 版本 < 3,则此处提供的原始旧解决方案适用。获取版本。

fusermount -V

针对较旧的 Ubuntu 系统(例如 20.04,支持到 2025 年 4 月)的解决方案。只需添加 big_writes 选项,例如

sudo mount -o big_writes /dev/<device> /media/<mount_dir>

我的 Linux NAS 配有低规格 CPU,现在管理 NTFS 大文件写入的速度提高了大约三倍。速度从约 17MB/s 提高到 50MB/s 以上。甚至在 iotop 中看到它的最高速度达到约 90MB/s,这可能接近外部驱动器的能力(2.5 英寸 USB3 HDD)。

来自 NTFS-3G 手册页:

 big_writes
              This option prevents fuse from splitting write buffers  into  4K
              chunks,  enabling  big  write buffers to be transferred from the
              application in a single step (up to some system limit, generally
              128K bytes).

之前有一篇文章讲得非常正确,参考如下:

也许可以在这里查看一下可能造成这种情况的原因。http://www.tuxera.com/community/ntfs-3g-faq/#slow

原始问题提到注意大文件传输的问题。根据我复制媒体文件或进行备份的经验,上述常见问题解答中的关键选项是:

解决方法:使用挂载选项“big_writes”通常可以降低 CPU 使用率,前提是请求写入的软件支持大块。

结束语:

  • Paragon 还提供了替代方案@hi-angel回答如下如果您拥有内核为 5.15 的较新 Ubuntu 版本,则可以提供更多信息ntfs3
  • Tuxera 为嵌入式系统合作伙伴保留了专业的 NTFS 驱动程序,而开源替代方案的性能并不那么好。

答案2

big_writes曾是已弃用在 2016 年,使用 3.0.0 或更高版本时始终启用相应的行为libfuse。在现代 Linux 系统上,NTFS 性能不佳通常意味着:

  • 磁盘碎片化
  • NTFS 磁盘压缩已启用
  • 安装选项不充分,例如sync被使用

答案3

也许可以在这里查看一下可能造成这种情况的原因。 https://github.com/tuxera/ntfs-3g/wiki/NTFS-3G-FAQ

这听起来有点像“过去”的情况,当时文件 io 默认不使用 DMA。现在不太可能,但 BIOS 是否对 SATA 驱动器使用 IDE 模拟?因为如果它模拟 IDE,那么它也可能模拟非 DMA 模式。

另一个潜在的减速因素是 ntfs 文件压缩。您正在写入的文件夹是否启用了压缩?如果启用了,则该文件夹中的所有新文件也会被压缩。

答案4

这是一个老话题,但对于正在寻找相同问题解决方案的人来说:您是否启用了 cpuspeed?ntfs-3g 占用大量 CPU,在我的例子中,cpuspeed 错误地检测到有大量 IO 等待的进程负载较低,最终限制了核心并导致驱动程序不可用。

尝试禁用 cpuspeed(如果它作为服务运行)并再次测试。

相关内容