在Ubuntu上NTFS写入速度真的很慢(<15MB / s)


18

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

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

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

如何确定写入速度?


您是否尝试过对具有原始驱动器访问权限的dd进行测试(在驱动器或分区上无所谓)?请注意,以这种方式进行测试将破坏文件系统并丢失所有数据。它将完全绕过NTFS驱动程序。
鲍勃

是的,我刚刚做了,结果是149MB/s
Zulakis

出于好奇,我不得不问这个驱动器是否是那些4k驱动器之一,因此您的文件系统是否可能因某种原因未对齐?!
Waxhead 2013年

4
我相信NTFS-3G的免费版本已被削弱,因此它使用4 KiB写入而没有缓存,从而导致SSD和USB驱动器的写入性能极慢。该驱动程序背后的公司建议购买商用版本,以获得更好的性能。显然,没有人关心实际修复(如有必要,请分叉)开源版本,因为自从NTFS-3G首次发布以来,这个问题已经存在了将近十年。
Tronic

1
使用同一台Ubuntu 2015.04笔记本电脑,我将320GB的外部硬盘和32GB的USB闪存盘格式化为NTFS。将2GB的照片复制到第一张照片是永久性的(估计30分钟后还剩下6个小时),但是复制到第二张照片(USB记忆棒)则只花了一两分钟。我没有更改两者之间的任何设置。
Nicolas Raoul 2015年

Answers:


18

以前的帖子在正确的轨道上,提供了参考:

也许在这里检查一下可能导致它的想法。http://www.tuxera.com/community/ntfs-3g-faq/#slow

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

解决方法:如果请求写入的软件支持大块,则使用挂载选项“ big_writes”通常会减少CPU使用率。

只需添加big_writes选项,例如

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

我的具有低规格CPU的Linux NAS现在管理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).

结束语:

  • big_writes选项可能对4K随机写入基准没有帮助;-)
  • 虽然Tuxera似乎为嵌入式系统合作伙伴保留了pro NTFS驱动程序,但Paragon提供了另一种供个人使用的免费NTFS驱动程序,称为Linux 9.0 Express的NTFS&HFS和专业版本。但是,我不保证该产品,当我尝试以前的版本(v8.5)时,我当时无法使其与我的Linux内核版本一起使用。

big_writes选项使我的磁盘从300kb / s变为35mb / s!谢谢!
JosFabre

10个字符使世界变得与众不同,非常感谢!
若昂·米格尔·布兰当

big_writes已于2016 年弃用,但是3年后,某些发行版仍在使用甚至更旧的libfuse版本。
德米特里·格里戈里耶夫

2

也许在这里检查一下可能导致它的想法。 http://www.tuxera.com/community/ntfs-3g-faq/#slow

这听起来有点像文件io默认不使用DMA的“过去”。这些天不太可能,但是BIOS是否将IDE仿真用于SATA驱动器?因为如果它正在仿真IDE,那么它也可能也在仿真非DMA模式。

另一个潜在的减慢是ntfs文件压缩。是否在要写入的文件夹上启用压缩?如果是这样,那也将压缩该文件夹中的所有新文件。


如何测试是否正在使用DMA?除此之外,我已经尝试了页面上的所有建议。
Zulakis

嗯,据我所知,DMA仅与IDE驱动器相关?我仅使用SATA驱动器。
Zulakis

根据en.wikipedia.org/wiki/Serial_ATA#Transport_layer的说法,听起来DMA是SATA的唯一选择。让我们看看他的
简历

0

这是一个旧线程,但对于正在寻找相同问题的解决方案的人们:您是否已激活cpuspeed?ntfs-3g占用大量CPU,在我的情况下,cpuspeed错误地为具有大量IO等待的进程检测到低负载,最终使内核节流,并使驱动程序匮乏。

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


如何确定cpuspeed是否处于活动状态?那是守护程序还是设置?
丹尼尔(Daniel)


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.