Mi escritorio generalmente responde muy bien, incluso bajo una gran carga. Pero cuando copio archivos a una unidad USB, siempre se bloquea después de un tiempo. Por "encerrar" quiero decir:
- Mover el foco de una ventana a otra puede llevar entre 10 y 20 segundos.
- El cambio de escritorios puede demorar entre 10 y 20 segundos
- Los videos ya no se actualizan (en YouTube, el audio continúa reproduciéndose, solo el video se congela)
La carga del sistema no es excepcionalmente alta cuando esto sucede. A veces, veo mucho blanco en xosview que indica que el kernel está ocupado en alguna parte.
A primera vista, parece que copiar archivos a la unidad USB interferiría de alguna manera con compiz, pero no puedo imaginar cuál podría ser la conexión.
Aquí está la salida de htop
:
Aquí está la salida de iostat -c -z -t -x -d 1
durante un bloqueo de 2 minutos:
19.07.2012 20:38:22
avg-cpu: %user %nice %system %iowait %steal %idle
1,27 0,00 0,38 37,52 0,00 60,84
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sdg 0,00 2,00 0,00 216,00 0,00 109248,00 1011,56 247,75 677,69 0,00 677,69 4,63 100,00
Como puede ver, solo el disco duro externo está activo. Aquí está el registro completo: http://pastebin.com/YNWTAkh4
El bloqueo comenzó a las 20:38:01 y terminó a las 20:40:19.
Información de software:
- openSUSE 12.1
- KDE 4.7.x
- Sistemas de archivos: reiserfs y btrfs en mi disco duro interno, btrfs en la unidad USB
sync
para ver qué efecto (si alguno) tiene?grep name /proc/cpuinfo
a su pregunta, por favor.cp
desde la línea de comandos para excluir posibles errores de delfines.rsync
desde la línea de comandos.iostat -c -z -d 1
Respuestas:
Mi primera suposición fue
btrfs
que los procesos de E / S de este sistema de archivos a veces se hacen cargo. Pero no explicaría por qué X se encierra.Mirando las interrupciones, veo esto:
Bueno duh. El controlador USB utiliza el mismo IRQ que la tarjeta gráfica y es el primero en la cadena. Si se bloquea (porque el sistema de archivos hace algo costoso), la tarjeta gráfica pasa hambre (y la red también).
fuente
Había visto problemas similares con el núcleo linux-3.1 de openSUSE 12.1 y descubrí que deshabilitar páginas enormes transparentes ayudaba:
El problema subyacente es que si una aplicación asigna 4 MB o más, el kernel intentará darle una página enorme, para lo cual necesita una RAM contigua de 4 MB. Ahora, si hay muchas páginas sucias alrededor, que aún deben escribirse en un dispositivo USB lento, espera a que ese IO termine antes de continuar con la asignación de memoria.
fuente
Como se mencionó, esto probablemente tenga que ver con la configuración de las páginas gigantes del núcleo. Conozco a varias personas con este problema. Puede encontrar varios documentos al respecto en la web, p. Ej.
He fijado por completo el problema de mi configuración mediante el procedimiento siguiente. Tenga en cuenta YMMV, no todas las correcciones a continuación pueden ser necesarias, y tal vez no sean suficientes. Puede que haya olvidado algo para ser honesto. De todos modos, esa es mi configuración y funciona.
echo madvise > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fuente
Cambia el cable. Retire el óxido del puerto usb / cables.
fuente