Por que o rsync falha com tubo quebrado (32), erro no soquete IO (código 10) em io.c (820)?

Por que o rsync falha com tubo quebrado (32), erro no soquete IO (código 10) em io.c (820)?

Comprei um novo disco rígido para meu servidor e estou tentando reorganizar meus arquivos. Para a primeira transferência, rsynccopiei ~3 GB perfeitamente. Contudo, com o comando equivalente rsync, a segunda transferência falha.

$ 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]

A primeira execução copiou cerca de 550 de 800 GB antes de engasgar. As tentativas mais recentes só conseguem copiar 1 GB antes de morrer. Não tenho certeza se é relevante, mas a fonte é umbackintimeunidade de backup incremental, portanto contém uma tonelada de links físicos. Como posso corrigir esse erro e concluir o comando?

Estou executando o protocolo rsync versão 3.1.1 versão 31.

Responder1

dmesg | grep rsync

[85852.560086] Sem memória: matar processo 4242 (rsync) pontuação 194 ou sacrificar filho [85852.562695] Processo morto 4243 (rsync) total-vm:121948kB, anon-rss:65752kB, arquivo-rss:4kB – Sparhawk

soluções:

  • altere sua velocidade de rsync para abaixo da dos seus discos. --bwlimit=6000.. USB 2 é 60 MB/s /4 para rw em 2 unidades ou /10 para busca em não SSD... ou obtenha um XU4 com 2 GB de RAM e USB3.
  • alterar os parâmetros de memória do kernelecho 100 > /proc/sys/vm/watermark_scale_factor
  • forçar uma limpeza de memória durante a operaçãoecho 3 > /proc/sys/vm/drop_caches
  • certifique-se de estar usando o kernel 4.9.29uname -r

informação relacionada