从本地 cp 到 USB 驱动器会影响桌面性能

从本地 cp 到 USB 驱动器会影响桌面性能

背景

在复制大量数兆字节的声音文件时,Kubuntu 桌面会间歇性地无响应(鼠标指针可以移动,但 Firefox、Konsole 和 KDE 本身会暂时忽略键盘按下、鼠标点击和网络 I/O)。

$ uname -a
Linux jaguar 2.6.32-22-generic #36-Ubuntu SMP Thu Jun 3 19:31:57 UTC 2010 x86_64 GNU/Linux

$ cp -Rnv /home/user/music/flac/* .

PID 是 11544,我随后尝试:

$ renice -n 19 -p 11544
$ ionice -c 3 -p 11544

奇怪的是,当我远程访问本地网络上的笔记本电脑(通过 TightVNC)时,远程屏幕会不断更新(如果我正在使用笔记本电脑)。同样,播放 USB 驱动器上的音乐文件(即使文件尚未完全复制)也不会受到间歇性无响应问题的影响。

按下 Control-Z 暂停复制过程会立即导致正常行为(一旦按键最终被 Konsole 接受)。

我想要实现的目标如下:

  1. 将 CD 翻录到桌面(Linux)计算机。
  2. 将 USB 驱动器插入笔记本电脑。
  3. 在笔记本电脑上运行 WinSCP。
  4. 使用 WinSCP 将音乐文件从台式计算机复制到笔记本电脑上的 USB 驱动器。

但是,无论我使用什么软件(WinSCP、Tunnelier 或 Cygwin 上的 rsync),复制都会以 2 MB/s 的速度开始,然后在几秒钟后降至 60 KB/s。实际上,安全复制会停滞。

谷歌

搜索发现有几个人遇到过类似的问题。大多数人通过切换到 Tunnelier 解决了问题。这对我来说不起作用。其他人切换到 FreeBSD 来解决问题。目前这不是一个选择。还有一些人从 SSH 协议 2 切换到 SSH 协议 1。这对我来说也不起作用。

日志文件

在 Windows 上使用时,USB 驱动器检查无误chkdsk /f。 的任何日志文件中均无相关错误消息/var/log

表现

当出现“暂停”时,使用监控系统top没有任何可疑之处。(top在没有响应的瞬间继续刷新。)程序hald-addon-storage显示它/dev/sr0每 2 秒轮询一次。不管那是什么意思。

硬件

四核处理器,8GB RAM。/tmp驱动器为空,/显示使用率为 72%。RAM 有 2GB 可用,即使在暂停期间,也没有一个 CPU 的使用率超过 1%。

问题

有谁知道可能会发生什么事,或者有谁可以探索途径来尝试了解系统发生了什么事?

答案1

我也有点困惑。首先,你显示命令表明问题在于将内容从你的主目录复制到 USB 驱动器,但随后你开始谈论你的 Windows 笔记本电脑和 scp。那么你到底在做什么?

对于在向慢速设备大量写入数据时 Linux 桌面交互性较差的问题,最新的 2.6.36 内核包含一个修补这应该可以解决这个特定问题。

由于您似乎正在使用 Ubuntu 10.04,您可以尝试使用内核 PPA看看是否能解决您的问题。

答案2

看了你提供的 cp/renice/ionice 示例后,我有点迷茫了。:) 在这些示例中,USB 驱动器是否连接到了您的桌面(因此不需要桌面和笔记本电脑之间的网络通信),或者您稍后是否尝试了桌面 +(笔记本电脑 + USB)组合?当您说“将 CD 翻录到 Linux 桌面”时,您是否将这些文件存储在本地硬盘驱动器或 USB 磁盘上?

在许多 Linux 发行版中,USB 驱动器将默认使用 mount 选项挂载sync。这意味着写入更安全,但另一方面,对于某些驱动器来说,这可能意味着非常写入性能缓慢,并产生各种其他奇怪的副作用。使用安装驱动器mount -o remount,async /your/usbdrive/mountpoint可能会大大加快写入操作。

如果您执行 WinSCP 节,但尝试复制到笔记本电脑中的本地驱动器而不是 USB 驱动器,Linux 桌面是否会停转?

相关内容