Rendimiento lento al copiar archivos ay desde dispositivos USB

11

Cuando copio archivos ay desde dispositivos USB (cámara, HDD, tarjeta de memoria) mi sistema se vuelve muy lento. Por ejemplo, si deseo cerrar una ventana, muevo el mouse, pero se tarda unos 2 segundos o más antes de que se mueva el cursor del mouse. Cuando finalmente coloco el cursor sobre la x y hago clic, no pasa nada durante más de 10 segundos. He intentado esto con todos los efectos de escritorio deshabilitados, pero el problema persiste.

Software: Linux Mint 9 KDE Hardware:

  • Placa madre Asus SLI
  • GPU NVidia 6600
  • 2 GB de RAM
  • 2 GB de intercambio
  • AMD Athlox X2 @ 3800+

Para mí, este hardware no debería tener ningún problema al ejecutar este software y no lo hace hasta que copie los archivos con USB. ¿Dónde debería comenzar a buscar para resolver esto? Estoy pensando que el controlador de gráficos puede ser parte del problema, pero no estoy seguro.

John
fuente
2
compruebe que los puertos USB sean compatibles con USB 2.0. algunos puertos USB, particularmente en la parte frontal de los escritorios, solían ser solo USB 1.0. También verifique que la configuración de su BIOS sea óptima para el rendimiento del USB. Puede haber algunas configuraciones de velocidad USB y / o configuraciones heredadas de USB que pueden afectar su rendimiento.
Tim Kennedy el
¿El dispositivo está formateado como NTFS? Si es así, trataría de formatearlo como FAT32 (o EXT4 si solo planea usarlo en Linux).
RobinJ
3
Parece haber un problema con las páginas enormes en la administración de memoria de Linux . Raramente ocurre, pero parece que lo has observado.
artistoex
@artistoex: ese artículo resume completamente el comportamiento que estaba experimentando. Lástima que no hay una solución concreta. ¿Alguien sabe si esto se soluciona en versiones posteriores? Tiempo para una actualización de todos modos.
John
como dice el artículo, vuelva a compilar su núcleo con la función de páginas enormes transparentes deshabilitada.
artistoex

Respuestas:

7

Parece que hay un problema con las páginas enormes en la administración de memoria de Linux . Raramente ocurre, pero parece que lo has observado.

Porque

Esta es mi explicación extremadamente simplificada de lo que, según el artículo, sucede.

Si no tiene suerte, un proceso se atasca en el momento en que emite un acceso a la memoria. Esto se debe a que cuando las páginas grandes transparentes están habilitadas, un acceso a la memoria puede activar la compactación sincrónica (desfragmentación de la memoria principal) sincrónica, lo que significa que el acceso a la memoria no termina antes de que lo haga la compactación. Esto en sí mismo no es algo malo. Pero si se produce una reescritura (por ejemplo, de datos almacenados en un búfer a USB) al mismo tiempo, es probable que la compactación se detenga, esperando que termine la reescritura.

Por lo tanto, cualquier proceso podría terminar esperando que un dispositivo lento termine de escribir datos almacenados en el búfer.

Cura

La actualización de la memoria principal, como lo hizo el OP, podría ayudar a retrasar el problema. Pero para aquellos que no lo consideran una opción, hay dos soluciones obvias. Ambos implican recompilar el núcleo:

artistoex
fuente
2

Esto suena similar a mi pregunta aquí (donde una respuesta me señaló a esta pregunta):

/programming/10105203/how-can-i-limit-the-cache-used-by-copying-so-there-is-still-memory-available-for

Pero la teoría es completamente diferente, y la solución que utilicé no está relacionada con la suya, pero funciona perfectamente.

Estaba usando rsync, así que todo lo que tenía que hacer era usar la opción --drop-cache. (lo que hace que la copia sea un poco más lenta como efecto secundario)

Peter
fuente
0

El único truco que encontré que realmente funciona: Gnome, los archivos de copia nautilus a USB se detienen al 100% o cerca

Si desea probar algunos trucos para usuarios avanzados, puede reducir el tamaño del búfer que utiliza Linux configurando / proc / sys / vm / dirty_bytes en algo así como 15728640 (15 MB). Esto significa que la aplicación no puede obtener más de 15 MB antes de su progreso real.

Un efecto secundario es que su computadora puede tener un rendimiento de escritura de datos más bajo con esta configuración, pero en general, me resulta útil ver que un programa se ejecuta durante mucho tiempo mientras escribe muchos datos frente a la confusión de tener un El programa parece estar hecho con su trabajo, pero el sistema está muy retrasado ya que el núcleo hace el trabajo real. Establecer "dirty_bytes" en un valor razonablemente pequeño también puede ayudar a evitar que su sistema deje de responder cuando tenga poca memoria libre y ejecute un programa que de repente escribe muchos datos.

¡Pero no lo configure demasiado pequeño! Utilizo 15 MB como una estimación aproximada de que el núcleo puede vaciar el búfer a un disco duro normal en 1/4 de segundo o menos. Evita que mi sistema se sienta "lento".

Volunteer4F
fuente