为什么 Linux 中的文件复制操作会随着时间的推移而变慢?

Use*_*und 29 linux performance file-transfer xfce

我有 12 ~200 MB 的文件。将其中一个复制到另一个驱动器需要 20 秒。当我尝试一次复制所有这些时,它首先说这将需要 5 分钟,然后它会一直减慢到数小时和数天。

我在 XFCE 中通过 Thunar 复制文件,但我记得在使用命令行时遇到了类似的问题。为什么会发生这种情况,我可以做些什么来补救它,而不只是一个一个地复制文件?

Dav*_*ave 33

这是 Linux 内核本身的一个已知问题,早已为人所知,但尚未有人解决该问题。

目前没有修复或已知的解决方法,除了使用 Windows 提高速度然后正常化。我发现这个 bug 是一个非常高优先级的问题,但程序员并不这么认为。正是这个 bug 开始让我远离 Linux。

参考:

  • https://bugs.launchpad.net/ubuntu/+source/linux/+bug/500069 (10认同)
  • 在这里,可以在原始引文中找到链接。https://bugzilla.kernel.org/show_bug.cgi?id=12309 (7认同)
  • 需要引用!如果您可以提供一些指向此错误的文档,它可能有助于我们的答案 (6认同)
  • 有没有为此想出任何解决方案?现在是 2019 年,我仍然遇到问题。 (3认同)
  • @Kyrol 这是一个很大的原因! (2认同)

Cod*_*ome 10

您应该尝试使用rsync来监控您的传输速度。例如:

rsync -PSauv sourcedir/* destdir/
Run Code Online (Sandbox Code Playgroud)

如果您确实看到传输速度下降,而不是文件很大,那么您需要查看其他一些内容。

  1. 如果您的磁盘受 I/O 限制,则会出现问题。当大量写入闪存驱动器或外部 USB 设备时,您经常会看到这种情况。

  2. 测试你的两个磁盘,hdparm -Tt <device>看看一个磁盘是否比它应该的速度慢得多,或者比另一个设备慢得多,这会导致 I/O 问题。

  3. 检查您的dmesg输出和您的 SMART 状态,以确保您没有任何明显的磁盘错误。您还可以考虑 badblocks -n是否怀疑非 SMART 驱动器上的磁盘错误。

磁盘崩溃或性能欠佳的原因有很多,但在您可以衡量问题之前,您将不知道问题是什么。:)