¿Por qué falla rsync con tubería rota (32), error en el socket IO (código 10) en io.c(820)?

¿Por qué falla rsync con tubería rota (32), error en el socket IO (código 10) en io.c(820)?

Compré un disco duro nuevo para mi servidor y estoy intentando reorganizar mis archivos. Para la primera transferencia, rsynccopié ~3 GB perfectamente. Sin embargo, con el rsynccomando equivalente, la segunda transferencia falla.

$ sudo /usr/bin/nice -n 19 /usr/bin/ionice -c2 -n7 rsync -aEHAXPx /media/a/ /media/b --delete
...
rsync: [sender] write error: Broken pipe (32)
rsync error: error in socket IO (code 10) at io.c(820) [sender=3.1.1]

La primera ejecución copió alrededor de 550 de 800 GB antes de ahogarse. Los intentos más recientes sólo logran copiar 1 GB antes de morir. No estoy seguro si es relevante, pero la fuente es unaatrás en el tiempounidad de copia de seguridad incremental, por lo que contiene un montón de enlaces físicos. ¿Cómo puedo solucionar este error y completar el comando?

Estoy ejecutando rsync versión 3.1.1, versión 31 del protocolo.

Respuesta1

dmesg | grep rsync

[85852.560086] Sin memoria: eliminar el proceso 4242 (rsync) puntuación 194 o sacrificar al niño [85852.562695] Proceso eliminado 4243 (rsync) total-vm:121948kB, anon-rss:65752kB, file-rss:4kB – Sparhawk

soluciones:

  • cambie su velocidad de rsync por debajo de la de sus discos. --bwlimit=6000.. USB 2 es de 60 MB/s /4 para rw en 2 unidades o /10 para buscar en dispositivos que no sean SSD... u obtenga un XU4 con 2 GB de RAM y USB3.
  • cambiar los parámetros de la memoria del kernelecho 100 > /proc/sys/vm/watermark_scale_factor
  • forzar una purga de memoria durante la operaciónecho 3 > /proc/sys/vm/drop_caches
  • asegúrese de estar usando el kernel 4.9.29uname -r

información relacionada