Rsync sem memória

3

Estou usando um VPS (rodando o Debian) com 512mb de RAM. Estou tentando copiar alguns arquivos localmente no servidor com o rsync, mas ele falha rapidamente com esta mensagem:

rsync: writefd_unbuffered failed to write 5 bytes to socket [sender]: Broken pipe (32)
rsync: connection unexpectedly closed (13505 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(601) [sender=3.0.7]

São apenas 113MB de arquivos (10.000 deles). Mas falha muito antes de chegar a todos esses arquivos.

Eu acredito que isso é por causa da memória limitada availible mas parece que eu deveria ser o suficiente? Existe alguma maneira de contornar isso? Eu poderia fazer o rsync usar um arquivo como uma pilha de memória?

Atualizar a pedido

comando rsync

rsync -av /srv .

ulimit -a

nine@www:~$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 16382
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) unlimited
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

grátis

nine@www:~$ free
             total       used       free     shared    buffers     cached
Mem:        524288     231104     293184          0          0          0
-/+ buffers/cache:     231104     293184
Swap:            0          0          0

O swap provavelmente ajudaria. O problema é que eu não acho que o meu VPS suporta adicionar isso.

Tente fazer uma troca

nine@www:~$ sudo swapon /home/nine/swap.file 
swapon: /home/nine/swap.file: swapon failed: Operation not allowed

Por que eu acho que é um problema de memória

Eu tenho a pergunta porque eu acho que é um problema de memória. É por causa do que o painel de controle do meu VPS me diz. Existe uma tabela que mostra erros para a máquina em que se parece com isso:

resourcetype    held    maxheld     limit           failcnt
numiptent       24  24      800             0
numfile         1612    2324        4200            0
dcachesize      440391  547046      20480000        0
numothersock    104     139     6000            0
dgramrcvbuf     0   17224       262144000       0
othersockbuf    172272  442048      262144000       0
tcprcvbuf       114688  4962176     262144000       0
tcpsndbuf       122528  2177672     262144000       0
numsiginfo      0   3       256             0
numpty      1   3       32          0
numflock        6   13      4120            0
numtcpsock      7   34      6000            0
oomguarpages    14029   23497       131072          0
vmguarpages     0   0       131072          0
physpages       14029   23497       9223372036854776000     0
numproc         102     142         4000            0
shmpages        697     1993        512000          0
privvmpages     57818   131075      131072          51
lockedpages     0   0       8192            0
kmemsize        5566036 7796832     117760000       0

Assista a contagem de falhas para privvmages, que, acredito, mostra quando a memória explode acima dos limites de burst. Isso conta sempre que estou executando o rsync.

    
por Niclas Nilsson 14.03.2013 / 21:38

1 resposta

2

O rsync recebe mais memória quando há mais arquivos.

Ou divida os arquivos em pastas separadas e rsync, ou TAR todos os 10.000 arquivos no local de origem e rsync o 10000.tar para o seu vps e depois descompactá-lo.

Não sei se esse problema foi resolvido na versão mais recente (3.1), mas foi um problema com versões anteriores.

    
por 23.05.2014 / 09:06