El sistema se congela / no responde / no se puede usar al copiar archivos grandes a USB

51

Ayer estaba copiando un solo archivo de 8 GB a un USB con una velocidad de escritura lenta de 7 MB / s, mientras que mi RAM es de 3 GB. Mientras copiaba el sistema se congeló, hasta el punto en que ni siquiera podía mover el cursor.

Logré iniciar sesión en la consola de texto, y ejecuté iotop, mostró que un proceso llamado kswapd0estaba tomando el 99.99% de IO.

¿Hay soluciones para que copiar un archivo grande no inutilice mi sistema?

sashoalm
fuente
14
Este error es tan ridículo ...
king_julien 02 de
Sí, no solo ocurre con Ubuntu sino también en otros sabores de Debian. También he visto el mismo problema en Kali Linux y Parrot OS. Kali tiene el peor de los casos, mientras que el loro lo hace suave pero aunque cuelga para tamaños muy grandes. Creo que es el problema en el kernel de Linux y cómo está escrito. Esta es y seguirá siendo la peor pesadilla de Linux de todos los tiempos.
Mohith7548

Respuestas:

34

Según este informe de error, lo resolví agregando las siguientes líneas

vm.dirty_background_ratio = 5
vm.dirty_ratio = 10

en /etc/sysctl.conf

y corriendo

sudo sysctl -p
Philippe Gachoud
fuente
12
¿Le gustaría explicar qué hacen las líneas anteriores?
nsane
3
@ nisargshah95 lo siento, pero no tengo idea,
búscate
44
@ nisargshah95 Los detalles del problema se explican en los dos artículos de LWN
Rmano
1
Gracias, acabo de descubrir que mi Ubuntu 16.04 no puede escribir dos archivos de 1.4 GB en USB sin estas dos líneas, me quedé congelado durante horas, este problema resuelto, a quién le importa lo que hace, a veces solo quieres copiar archivos y moverlos en.
Mike
1
Que tenía los valores de 5 y 60. Estos control de la ciento de memoria utilizada para las operaciones, mientras que dirty_background_bytesy dirty_bytesutilizar absolutos valores bytes. He solucionado este problema con la segunda respuesta, pero para que sea persistente agrégalo a sysctl.conf, mira esta respuesta . Entonces, cuando use valores porcentuales, modifíquelos al actualizar la memoria.
PeterM
20

Me encontré con el problema similar. El mío es Ubuntu 64.04 de 64 bits. Entonces, después de una larga lucha, encontré una respuesta que resuelve mi problema. Para facilitar el uso, agregué los comandos a continuación utilizados en la respuesta mencionada anteriormente . Verifique la respuesta para una explicación detallada.

echo $((16*1024*1024)) > /proc/sys/vm/dirty_background_bytes
echo $((48*1024*1024)) > /proc/sys/vm/dirty_bytes

Después de usar el sistema de comando anterior, comenzó a funcionar normalmente en la copia de archivos.

Gracias a @Rmano .

Mahendran Sakkarai
fuente
2
La configuración de la relación no ayudó en mi sistema 12.04 con un uso compartido lento del NAS. Pero después de configurar los bytes directamente como se sugiere aquí, mi sistema se puede volver a usar mientras se copia al NAS.
mivk
66
Esta pregunta tiene 3 años y aún es necesaria para evitar tener un sistema inutilizable mientras se copia a pendrive. Alguna información: si el pendrive está formateado usando un fs de Linux como ext4, esto no sucede. Cuando dije "sistema inutilizable", lo digo en serio, el puntero del mouse deja de responder y tienes que insistir en moverlo por la pantalla, miras el monitor del sistema y no hay ningún uso anormal de recursos. ¿Todas las personas del kernel usan CPUs y unidades SSD de 6a generación de Intel? ¿Cómo es que no se dan cuenta de esto durante las pruebas?
Hatoru Hansou
3
@HatoruHansou Siento lo mismo, acabo de instalar Debian Stretch y este error también está presente aquí. Sé que no depende de la distribución, sino de las fuentes del kernel, pero hombres, ¿cómo es que esto aún no se soluciona?
Marecky
1
@Marecky Después de leer un poco, parece que los dirty_bytes no son solo una cosa usb. Afectan a todas las E / S, por lo que después de hacer el eco, está cambiando su sistema global, no solo para pendrives. Solo para la sesión actual, creo. Parece que los valores actuales del kernel se modifican pensando en dispositivos de almacenamiento más nuevos. Los pendrives lentos sufren como efecto secundario. Lo sentimos, no hay enlace, pero debe ser fácil de encontrar buscando en Google.
Hatoru Hansou
3
Vea esta respuesta para hacerlo persistente
PeterM
5

Estoy experimentando un problema similar con la congelación del sistema al copiar en una unidad flash. Envié un informe de error al respecto: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1267648

Como solución alternativa, descubrí que deshabilitar el intercambio elimina por completo el problema.

Vladimir Rutsky
fuente
1
Desafortunadamente, esto no funcionó para mí en Ubuntu 16.04.
Programador
Tampoco funcionó para mí en Ubuntu 16.04.3 LTS, esto en una computadora portátil Alienware 17 R2.
AnthonyK
4

Sí, hay ajustes del kernel que puede ajustar especificando cuántos datos deben marcarse como escritos antes de que realmente se escriban en el disco. Mira aquí para obtener una descripción bastante completa de ellos. En particular, querrá encontrar un valor de dirty_ratio que funcione bien para usted (generalmente es demasiado alto para computadora de escritorio / portátil de forma predeterminada, pero no hay un número mágico que funcione para todos).

Bandrami
fuente
2
Oye, ¿podrías sugerirme qué números necesito establecer según las especificaciones de mi computadora portátil? consulte askubuntu.com/questions/713723/…
2

Acabo de tener exactamente el mismo problema (en 2019), en ubuntu 19.10, mientras copiaba una gran cantidad de archivos del disco USB al disco SATA. Ambos sistemas de archivos son ext4. Cuando apagué el intercambio, el problema desapareció. Parece un error en la asignación de memoria para las memorias intermedias de disco: aparentemente, el núcleo intenta asignar tanta memoria para las memorias intermedias de disco, como sea posible en tal situación, lo que no tiene sentido (hacer que las memorias intermedias de disco se intercambien ...), o simplemente calcula incorrectamente el tamaño de la memoria que se puede usar para el almacenamiento en caché ...

chaker
fuente
¿Alguna de las soluciones aquí funciona para usted? También comencé a sufrir este problema después de actualizar a 19.10 y en el proceso de actualización del kernel también. En mi caso, esto sucede cuando copio un archivo grande de la partición A a B del mismo SSD. Deshabilitar SWAP "soluciona" el problema.
pileofrocks hace
1

Tuve problemas similares al copiar archivos a una exfatunidad. Tuve menos problemas para usar un ext4sistema de archivos en mi disco duro USB.

Mazo
fuente
1
También tuve este problema en ext4
PeterM
Fedora 27 (kernel 4.17.5-100) copia de óxido giratorio conectado a USB a memoria flash conectada a USB. Esto parece ir tan lejos como congelar el bloqueo de pantalla a mitad de fade. :-( ~~~
David Tonhofer