我以前也遇到过类似的问题,但我不记得我是如何解决的。
当我尝试使用 FAT 将某些内容复制到 USB 记忆棒时,它会在接近尾声时停止,有时是 100%。当然,当我将记忆棒转移到其他地方时,它不包含完整的文件。(文件是一部电影!)
我试图用 mount -o flush 挂载设备,但我遇到了同样的问题。
另外,我确实用新的 FAT 分区格式化了 U 盘...
知道我感冒了吗?
ps 我相信它与操作系统无关,这是 Debian,我相信从 SSD 驱动器应对不会让它卡住。
当我从 USB 设备(相机、硬盘、存储卡)复制文件时,我的系统变得非常慢。例如,如果我想关闭一个窗口,我会移动鼠标,但在鼠标光标移动之前大约需要 2 秒或更长时间。当我最终将光标移到 x 上并单击它时,10 秒以上没有任何反应。我已经在禁用所有桌面效果的情况下尝试过此操作,但问题仍然存在。
软件:Linux Mint 9 KDE 硬件:
对我来说,这个硬件在运行这个软件时应该没有任何问题,直到我使用 USB 复制文件时才会出现问题。我应该从哪里开始寻找解决这个问题?我有点认为图形驱动程序可能是问题的一部分,但我不确定。
有害的 USB 记忆棒停顿问题- LWN.net,2013 年 11 月。
Artem S. Tashkinov 最近遇到了一个问题,至少一些 LWN 读者会熟悉这个问题。将慢速存储设备(例如 U 盘或媒体播放器)插入 Linux 机器并向其写入大量数据。整个系统继续挂起,可能持续几分钟。
不过这一次,Artem 做了一个有趣的观察:系统在使用 64 位内核运行时会停顿,但在相同硬件上使用 32 位内核时没有遇到这样的问题。
文章解释说,对于 64 位内核,默认情况下允许脏页缓存(回写缓存)增长到内存的 20%。使用 32 位内核时,它实际上被限制在大约 180MB。
Linus 建议在 64 位上也将其限制为 ~180MB,但是当前的 Linux (v4.18) 没有这样做。将Linus 建议的补丁, 与Linux 4.18 中的当前功能进行比较。反对这种变化的最大论据来自 Dave Chinner。他指出,过多地减少缓冲会导致文件系统受到碎片化的影响。他还解释说,“对于流式 IO,我们通常需要至少 5 秒的缓存脏数据来平衡延迟。”
我很迷惑。优盘卡顿为什么会导致整个系统挂掉?
我很困惑,因为我读了一篇描述2011 年合并代码的早期文章(Linux 3.2)。它显示内核应该已经在每个设备的基础上控制脏页缓存:
无 I/O 脏节流- LWN.net, 2011
这就是Fengguang 的补丁集的用武之地。他试图创建一个控制循环,该循环能够确定在任何给定时间每个进程应该允许脏多少页。超出其限制的进程会被简单地休眠一段时间以允许写回系统赶上它们。
[...]
系统的目标是将脏页数保持在设定值;如果事情变得不合时宜,就会施加越来越大的力量,将事情带回应有的位置。
[...]
但是,如果不考虑支持设备 (BDI),则无法真正计算出该比率。一个进程可能正在弄脏存储在给定 BDI …
Ubuntu 存在一个尚未修复的问题,当它复制到 U 盘时,PC 会死机或变得非常慢(请参阅为什么我的 PC 在我将文件复制到 Pendrive 时会死机?,http: //lwn.net/Articles/572911/和https://askubuntu.com/q/508108/234374)。
一种解决方法是以 root 身份执行以下命令(请参阅此处的说明)以 root身份执行以下命令:
echo $((16*1024*1024)) > /proc/sys/vm/dirty_background_bytes
echo $((48*1024*1024)) > /proc/sys/vm/dirty_bytes
Run Code Online (Sandbox Code Playgroud)
如何还原这些更改?当我重新启动我的 PC 时,它会回滚到默认值吗?