在USB设备之间复制文件时性能降低


11

当我在USB设备(相机,HDD,存储卡)之间复制文件时,我的系统变得非常慢。例如,如果我想关闭窗口,则移动鼠标,但是鼠标光标移动大约需要2秒钟或更长时间。当我最终将光标移到x上并单击时,在10秒钟以上没有任何反应。我已经尝试过禁用所有桌面效果,但是问题仍然存在。

软体:Linux Mint 9 KDE硬体:

  • 华硕SLI主板
  • NVidia 6600 GPU
  • 2 GB内存
  • 2 GB交换
  • AMD Athlox X2 @ 3800+

对我来说,该硬件在运行该软件时应该没有任何问题,并且直到我使用USB复制文件时才如此。我应该从哪里着手解决这一问题?我有点认为图形驱动程序可能是问题的一部分,但我不确定。


2
检查USB端口是否支持USB 2.0。某些USB端口(尤其是台式机的正面)以前仅是USB 1.0。还要检查您的BIOS设置是否最适合USB性能。可能有些USB速度设置和/或USB传统设置可能会影响您的性能。
蒂姆·肯尼迪

设备是否格式化为NTFS?如果是这样,我将尝试将其重新格式化为FAT32(如果仅打算在Linux上使用,则将其重新格式化为EXT4)。
RobinJ

3
linux的内存管理中的大页面似乎存在问题。它很少发生,但听起来像您已经观察到了。
artistoex 2011年

@artistoex-该文章完全总结了我所遇到的行为。太糟糕了,没有具体的解决方法。有人知道在更高版本中是否已解决此问题?无论如何都需要升级。
约翰

如文章所述,请在禁用透明大页面功能的情况下重新编译内核。
artistoex

Answers:


7

linuxes内存管理中的大页面似乎存在问题。它很少发生,但听起来像您已经观察到了。

原因

根据这篇文章,这是我对事情的大致简化。

如果不走运,进程将在发出内存访问时卡住。这是因为启用透明大页面时,内存访问可能会触发同步压缩(主内存碎片整理)同步,这意味着内存访问不会在压缩之前完成。这本身不是一件坏事。但是,如果同时发生回写(例如,缓冲数据到USB),则压缩可能会停止,从而等待回写完成。

因此,任何进程都可能最终等待缓慢的设备完成写入缓冲的数据。

治愈

像OP一样,升级主内存可能有助于延迟问题。但是对于那些不考虑该选项的人,有两种明显的解决方法。两者都涉及重新编译内核:



0

我发现真正可行的唯一技巧: Gnome,将鹦鹉螺复制到USB的文件停止在100%或接近100%

如果您想尝试一些高级用户技巧,可以通过将/ proc / sys / vm / dirty_bytes设置为15728640(15 MB)来减小Linux使用的缓冲区的大小。这意味着应用程序不能比实际进度多出15MB。

副作用是,使用此设置可能会降低计算机的数据写入吞吐量,但是总的来说,我发现程序在写入大量数据时运行了很长时间会有所帮助,而这与使用程序似乎已完成其工作,但由于内核执行实际工作,系统严重滞后。将dirty_bytes设置为一个较小的值还可以防止在可用内存不足并且运行程序突然写入大量数据时避免系统变得无响应。

但是,请不要将其设置得太小!我使用15MB作为粗略估计,即内核可以在1/4秒或更短的时间内将缓冲区刷新到普通硬盘。它使我的系统不会感到“松弛”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.