问题描述
当复制大文件或使用dd
测试写入速度时,使用NTFS文件系统在驱动器上可以得到的最大写入速度约为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
如何确定写入速度?
最佳回答
以前的帖子在正确的轨道上,提供了参考:
perhaps check here for ideas on what could be causing it. http://www.tuxera.com/community/ntfs-3g-faq/#slow
Workaround: using the mount option “big_writes” generally reduces the CPU usage, provided the software requesting the writes supports big blocks.
只需添加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驱动程序,称为NTFS&HFS for Linux 9.0 Express和专业版本。但是,我不保证该产品,当我尝试以前的版本(v8.5)时,我当时无法使其与我的Linux内核版本一起使用。
次佳回答
big_writes
在2016年为deprecated,使用3.0.0或更高版本的libfuse
时始终启用相应的行为。在现代Linux系统上,较差的NTFS性能通常意味着:
-
磁盘碎片
-
NTFS磁盘压缩已启用
-
使用了诸如
sync
之类的安装选项不足