rsync é muito lento (fator 8 a 10) comparado ao cp ao copiar arquivos do nfs-share para o dir local

14

Eu tenho um servidor Ubuntu recém-instalado, que deve ser o novo servidor de backup para o nosso armazenamento VM. O servidor tem 4 nics, 2 deles 10Gbit (na verdade, um intel x540-T2 com o mais novo driver disponível) que são usados para conectar-se ao SAN. Eu tenho o nfs-share montado localmente e comparou as diferenças de velocidade ao copiar um diretório com ~ 30 arquivos, cerca de 15 vm-imagens e arquivos de log correspondentes. As imagens têm entre 8 GB e 600 GB de tamanho.

Usando:

cp -rf /mnt/nfs-share /backup-storage/

bmon mostra consequentemente cerca de 600 MiB / s.

Usando

rsync -av /mnt/nfs-share /backup-storage/

O bmon mostra alguns pacotes nos primeiros segundos, pára por cerca de 30 segundos e aumenta para cerca de 60-75 MiB / s. CPU é de cerca de 60%.

O que devo / devo alterar para usar rsync com o mesmo desempenho que cp ?

    
por soulpath 19.09.2013 / 11:42

2 respostas

17

Acho que essas diferenças estão bem estabelecidas entre cp e rsync . Veja este artigo como referência, intitulado: Uma olhada no desempenho do rsync .

trecho:
The four commands tested were:

    rsync $SRC $DEST
    echo $SRC | cpio -p $DEST
    cp  $SRC $DEST
    cat $SRC > $DEST/$SRC

The results for rsync, cpio, cp, and cat were:

user    sys     elapsed hog MiB/s   test
5.24    77.92   101.86  81% 100.53  cpio
0.85    53.77   101.12  54% 101.27  cp
1.73    59.47   100.84  60% 101.55  cat
139.69  93.50   280.40  83% 36.52   rsync

Eu uso rsync diariamente. Há coisas que você pode fazer para melhorar a situação.

Por exemplo, você pode tentar usar a opção -W :

-W, --whole-file            copy files whole (w/o delta-xfer algorithm)

Também gostaria de sugerir que você tenha as versões 3.x de rsync . Houve melhorias notáveis quando nos mudamos para as versões mais recentes.

    
por 19.09.2013 / 13:59
12

A maneira de fazer o rsync ter o mesmo desempenho que o cp é soletrar "cp".

A diferença entre os dois comandos é significativa, embora o efeito líquido possa ser o mesmo. Em particular, o rsync faz um monte de leitura para ver se algum arquivo ou parte de um arquivo deve ou não ser copiado.

Existe algum motivo para você querer usar o rsync? Porque o cp copia "cegamente" você verá um desempenho bruto mais alto. Se, para um conjunto de condições de disparo, o mecanismo "delta-transfer" do rsync for usado, você verá as taxas de transferência caírem e o uso da CPU aumentará muito da maneira que você relata.

    
por 19.09.2013 / 12:59