从 Linux 访问 NTFS ssd 磁盘的性能有多差?

Arg*_*Kos 5 linux ntfs ssd

我有一个小型 SSD,其中安装了 Windows,Ubuntu 安装在 HDD 磁盘上。我想从 Linux 上存储和访问 SSD 上的一些文件(以提高性能)。我不想对 SDD 磁盘进行分区,因为剩余空间不多,而且我认为这会对 Windows 性能造成损害。所以真正的问题是从 Linux 访问存储在 NTFS 磁盘上的文件有哪些缺点?

gcb*_*gcb 9

由于这是排名靠前的自然搜索结果,因此以下是 2021 年的一些新数据。

块 + FS 100MB 100MB 覆盖 1GB 1GB 覆盖
原始ntfs 75 75 73 73
RAID0 NTFS 75 75 73 73
生脂肪 157 143 157 157
原始 ext4 980 180 166 166
突袭0 ext4 850 180 第855章 第362章

(所有数字均为 MiB/s。越高越好)

使用 gnome-disks 默认选项创建的所有分区

gnome-disk-utility 40.1 UDisks 2.9.2(针对 2.9.2 构建)

测试时time dd if=/dev/zero of=file.txt bs=1M count=1000计数=100。在新唤醒但空闲的磁盘上运行约 10 次。全部连接到 sata2/3gps(不是 6 个)。全部在 47C 到 50C 之间。

通过覆盖表,我的意思是dd输出到现有的 FS 文件而不是新文件。

使用5.12内核

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm cpuid_fault epb pti tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts
vmx flags       : vnmi preemption_timer invvpid ept_x_only flexpriority tsc_offset vtpr mtf vapic ept vpid unrestricted_guest
bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit srbds
Run Code Online (Sandbox Code Playgroud)

两个 raid0 测试均在磁盘开头进行分区,并使用 2 个用于原始测试的相同磁盘。原始测试均在磁盘的最后 3/4 上进行分区,并在两个磁盘之间取平均值(它们之间的数字从未出现差异)


har*_*ymc 3

在正常情况下,性能会存在一些差异,尽管在适当的参数下NTFS在Linux上相当有用。

Linux 总是会慢一些。Windows 使用本机内核驱动程序,这是一种性能非常高的低级驱动程序,而 Linux 使用 NTFS-3G,它在用户空间中运行,因此速度本质上较慢。

其中一些性能差异可以通过遵循 Tuxera NTFS-3G 常见问题解答中列出的建议来改善 ,特别是 big_writes 选项(在复制大文件时有用,但在更新文件时不建议)。

进一步阅读: