我正在使用 SATA 转 USB 3.0(公头)连接器将一个大约 100GB 的大型游戏文件从我的笔记本电脑传输(复制)到我已经拥有的 SATA SSD。有时它确实可以正常工作,即我确实可以看到超过 300MB/s 的速度,但很多时候(包括这种情况)我发现在同一个连接器、同一个笔记本电脑和同一个 SATA SSD 上我得到的速度大约是 40MB/s,这对于 USB 3.0 来说绝对是不可接受的。发生的事情是,一旦我开始传输某些东西,它就一直保持在 30-35MB/s,而不是 300-400MB/s。

我也用支持 USB 3.0 的其他笔记本电脑检查了这个问题,但还是出现了同样的问题,有时你确实可以看到 300-400MB/s,但大多数时候你只会看到非常低的传输速度。

我想知道这个设置的瓶颈部分到底是什么,或者 USB 3.0 是如何处理大文件的,或者我的设备本身是否有问题。

系统详细信息:

  • 英特尔酷睿 i5-13450HX
  • Zebronics SATA 至 USB 转换器
  • WD Green 480GB SATA SSD

12

  • SSD 具体型号是哪个?你知道它使用哪种闪存类型吗(TLC 还是 QLC)?


    – 

  • 1
    SSD 有多满?SSD 上有什么文件系统?


    – 

  • 听起来像是 USB 端的连接器有问题,有时会导致连接降级为 USB 2.0。(在 Linux 上,您可以通过检查轻松确认是否发生了这种情况lsusb -t。)


    – 


  • 2
    有点可疑的是,该型号的产品简介没有列出闪存类型,只指定了预期的读取性能,但没有指定写入性能,甚至保证的 TBW 也只是“N/A”。鉴于它来自“绿色”行,我真的很想假设它是 QLC SSD,对于它来说,您获得的写入速度实际上是正常的。


    – 


  • 3
    @TejasDahake 因为 SLC 缓存尚未填满?您能更具体说明一下“有时”吗?您是指在一次持久写入后速度会下降,还是是指在某些持久写入(类似大小/模式)时速度很慢,但在某些时候(整个时间)速度很快。


    – 


最佳答案
1

由于驱动器通过 USB 连接,并且位于 USB <> SATA 桥接控制器后面,类似 TRIM 的命令可能无法到达 SSD。

(参见:

这意味着,即使在文件系统级别删除之后,就 SSD 而言也没有任何变化,换句话说,现在已删除的文件占用的 LBA 块仍被视为“正在使用”。

这些块在被擦除之前不能被写入,并且 SSD 发现它们可以被擦除的唯一方法是当这些块再次被写入时(在没有 TRIM 的情况下)。

因此,一个可能的情况是,通过向已满 70% 的驱动器写入 100 GB,SSD 会遇到没有 100 GB 的已擦除块可用的情况,而您正在等待垃圾收集来赶上。

在您尝试复制 100 GB 文件几次、再次删除、再次尝试等之后,很容易发生这种情况。由于擦除是所有三个 NAND 操作(读取/写入/擦除)中最慢的,所以这有可能解释写入速度低的原因。

6

  • 2
    Since the drive is connected through USB 3.0, it may not support 'UASP'USB 3.0 怎么就意味着 UASP 可能不受支持呢?此外,UASP 是 USB 级别的,而是否发送 UNMAP 是 SCSI 级别的。即使出于某种原因禁用了 UASP,也不会禁用 UNMAP(尽管你会发现硬件几乎同时支持这两种功能或两种功能都不支持,因为据我所知,引入 UASP 的原因是因为桥接 SSD 正在成为一种趋势,而 BOT 无法利用其特性/速度)。


    – 

  • 2
    链接的答案并不完全正确,关于为什么 Linux 中针对据我所知所有 USB-SATA/NVMe 桥接器禁用丢弃/取消映射。真正的原因并不完全是关于砖块历史,而是不知何故没有供应商在 READ CAPACITY (16) 响应中将 LBPME 位设置为 1。Linux 上的 SCSI 磁盘驱动程序会检查该位,即使它至少看起来实际上是多余的,因为 SCSI 标准要求为支持 UNMAP 的设备设置该位,而内核开发人员不想像 Windows 那样忽略它。(他认为这种设备不可信。)


    – 


  • 1
    顺便说一句,有一个有趣的事实:上次我检查时,Windows 中 NVMe 设备的 SCSI 转换层也没有将 LBPME 位设置为 1,而 ATA 设备的转换层却将 LBPME 位设置为 1。结果是,当您在 Hyper-V 等中直通 NVMe 驱动器时,您还需要处理provisioning_modeLinux VM 以发送丢弃/取消映射。(但说实话,在我看来,TRIM 现在仍然有点“被高估了”。根据我的经验,它并不那么重要,尤其是对于写入一个大文件的速度而言。)


    – 

  • TRIM 的可观察结果在很大程度上取决于具体情况。例如,如果过度配置充足,TRIM 就不会那么明显。速度并不是唯一值得关注的问题,TRIM 可能会实现降低放大率。


    – 

  • @TomYan 老实说,我并不深入了解所有这些技术细节,但我现在知道 USB > SATA / NVMe“桥接器”在某些时候开始中继或传递类似 TRIM 的命令,而之前它们并没有这样做,而转折点是 USB 3 >“其他协议”适配器。我以为 UASP 在其中发挥了作用,但我可能错了。这并没有改变我的答案。这是关于 TRIM/取消映射命令可能无法到达驱动器的问题。


    –