我正在将文件复制到 USB 3.0 记忆棒。 USB 记忆棒已插入蓝色 USB 端口。
我正在复制 22 个 1.5GB 的文件。
当我进行复制(简单的拖放)时,复制对话框报告速度约为 60MB/s,然后,在复制第一个 1.5 GB(肯定是第一个文件)后,进程停止了几分钟,之后,报告传输速度低于 3MB/s。 最初估计为几分钟的传输时间现在估计为几个小时……
lsusb -t
报告:
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 480M
|__ Port 1: Dev 6, If 0, Class=Mass Storage, Driver=usb-storage, 480M
|__ Port 9: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 2: Dev 4, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 3: Dev 5, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 10: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
该设备在总线01上,报告480M,这是一个速度吗?如果是这样,我看到总线 02 的速率更高,为 5000M,但我尝试了所有可访问的端口,但无法让 USB 记忆棒出现在该总线下。
lsb_release -a
报告
Distributor ID: LinuxMint
Description: Linux Mint 18.3 Sylvia
Release: 18.3
Codename: sylvia
笔记:
- 在 Windows 计算机上使用同一个 USB 记忆棒在不到一个小时内即可复制相同的文件,而在我的 Linux 计算机上则需要 6 个多小时。所以我真的怀疑Linux系统没有正确处理USB 3(因为它显示密钥为480M,而它是USB 3记忆棒:有一个蓝色的USB连接器并作为USB 3出售)
- 尝试了不同的 USB 3 记忆棒。这次它出现在 Bus 02 5000M 下,并且复制速度要快得多(即使估计仍然很危险)。显然我的电脑可以正确处理一些 USB 3 设备,但不能处理我在原来的帖子中使用的设备。显然 Windows 能够做到这一点,希望 Linux 可以做一些事情来以更好的方式管理它。
怎样才能让复制速度更快?
答案1
进程停止几分钟,之后传输速度据报告低于 3MB/s
第一个脏缓冲区被填满,您看不到真正的写入速度,一旦它们被填满,您就开始获得真正的写入速度。
更多信息请点击这里:
为什么 2013 年会出现“U 盘失速”问题?为什么现有的“无 I/O 脏节流”代码没有解决这个问题?
https://lwn.net/Articles/572911/
这是我自己解决的方法:
/etc/sysctl.d/dirty_buffers.conf
# Per Torvalds advice
vm.dirty_background_bytes = 33554432
vm.dirty_bytes = 134217728
由于某些原因,即使对于 Linux 6.2,这仍然相关。