rsync está apenas pendurado, criando lista de arquivos


20
[root@centos /]# rsync -av --exclude thumbs /storage root@xx.27.1.xx:/storage
root@xx.27.1.xx's password: 
building file list ... 

Estou sentado há cerca de uma hora ... são 135 GB de imagens e pastas

/storage é uma unidade ext3 scsi montada.

É normal que o rsync fique sentado por tanto tempo calculando os arquivos / diretórios?


Quantos arquivos? Com um número muito grande de arquivos, vai demorar um pouco.
Helvick

provavelmente milhares ... diretório de imagens de uploads de usuários ...
Andrew Fashion

Eu já vi essa parte do rsync demorar mais de uma hora quando há milhares, milhares e milhares de arquivos. Se você executar 'top', verá E / S aguardar?
troyengel

Só porque estou curioso, você pode executar df -ie nos dizer o que tem para IUsedarmazenar / armazenar? Isso nos dará uma idéia aproximada de quantos arquivos + pastas você possui.
Zoredache

1383641, essa é a quantidade de arquivos?
Andrew Fashion

Respostas:


24

O rsync 2.x cria uma lista completa de arquivos com antecedência.

Adicione a -Popção e você verá um indicador de progresso.

Se você acha que realmente está travando, em outro terminal encontre o pid do rsync e depois

  1. Corra strace -p PIDe veja o que está fazendo. (Pressione ^ C para parar.)

  2. Corra ps -o wchan PIDpara ver onde ele está no kernel.


Uau straceé legal! Você provavelmente descobrirá que algo circular está acontecendo: como um link que se refere a um de seus diretórios ancestrais. No meu caso eu estava usando um sistema de arquivos virtual que não tinha limite em sua profundidade, ou seja, ele tinha "infinitamente" muitos subdiretóriostagfs/books/+/books/+/books/+/ ...
Zaz

@Zaz Eu também tenho uma quantidade enorme de subdiretórios, em profundidade. Mas isso está no meu design de sistema. Há uma maneira de resolver isto?
user1641443

@ user1641443: Desculpe, isso está além de mim.
Zaz 16/09

@ user1641443: 1: Tente rsync> 3.0, como diz Martin . 2: Execute vários processos rsync, cada um em uma subárvore menor. 3: Abra sua própria pergunta separada.
poolie 17/09/16

15

Você deve atualizar para o rsync 3.0.x, onde obterá o benefício de listas de arquivos incrementais, explicadas aqui . Estou sincronizando milhões de imagens (~ 200 GB no total) e vi uma enorme velocidade ao passar do rsync 2.x para o 3.x.

Mesmo assim, provavelmente levará muito tempo para analisar todos esses dados. No meu caso, ainda leva mais de uma hora entre dois servidores DL380 G5 bastante poderosos.


Observe também que certas bandeiras forçarão o comportamento antigo; para mim foi --delay-updates.
Xiong Chiamiov 06/06/19

11
@XiongChiamiov As únicas opções que estou usando são "-a" e "--progress" e a versão 3.1.x ainda está criando uma lista de arquivos incremental. Por quê?
Michael

3

Você notou anteriormente que também duestava pendurado. Algo está acontecendo com esse sistema de arquivos e rsyncestá atingindo o que duestava acontecendo.

Uma coisa rápida que você pode verificar é a existência de mensagens de erro do kernel indicando um problema no disco. Digite dmesge veja o que há na parte inferior.


1

O travar após a mensagem "criar lista de arquivos ..." pode ser causado pela incompatibilidade do MTU, por exemplo, se você configurou as interfaces de rede com o MTU 9000, mas não a alternância entre pacotes pequenos (como a conexão ao servidor rsync) passará por outras maiores, mas não maiores (como o envio da lista de arquivos).


depois de muita pesquisa me deparei com isso e ele me levou a ir verificar - estava executando o rsync em uma VPN com o padrão 1450 mtu, mas não estou no controle do equipamento entre os sites - alterei o vpn mtu para 1430 e viola o O rsync funciona 100% (e de repente outras estranhezas da rede também desapareceram!) obrigado!
l0ft13

0

Com base nisso e em sua outra questão de du /storageenforcamento, me faz pensar que nenhum duou rsyncé o problema, mas há alguns problemas /storage.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.