AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1600336
Accepted
Thorsten Schöning
Thorsten Schöning
Asked: 2020-11-08 06:54:13 +0800 CST2020-11-08 06:54:13 +0800 CST 2020-11-08 06:54:13 +0800 CST

Por que o RSYNC usa dois processos de leitura com arquivos diferentes no meu destino de backup?

  • 772

Fundo

Eu tenho um servidor que hospeda máquinas virtuais e um NAS Synology DS1512+ mais antigo usado como destino de backup para essas máquinas virtuais. O servidor usa ZFS, cria instantâneos e transfere os arquivos dos instantâneos para o NAS. O NAS usa BTRFS com compactação habilitada e também suporta instantâneos. o objetivo final seria que o servidor realmente apenas enviasse DELTAs usando RSYNC para minimizar a quantidade de dados alterados recebidos pelo NAS e fazer uso eficiente de instantâneos nele também.

Problema

Usar RSYNC com DELTAs não funciona no meu caso, porque transferir os dados simplesmente leva muito tempo . Quando o RSYNC é usado com --inplace --whole-file, os dados levam aproximadamente 2 horas para serem transferidos. Ao remover --whole-filepara usar DELTAs, o mesmo processo de backup demora muito mais, muitas vezes eu matei o processo depois de já executar mais de 12 horas. Por motivos históricos, preciso encaixar diferentes backups em janelas de tempo muito menores.

O único gargalo que faz sentido é o NAS, porque o servidor é muito mais poderoso e fica ocioso na maior parte do tempo. O NAS OTOH tem uma carga bastante alta na CPU e E/S durante o backup. No entanto, os números também não são tão ruins, é apenas que eles são mais ruins do que quando se usa --whole-file. Com isso, o NAS simplesmente grava ~100+ MiB/s, enquanto com DELTAs ele lê mais devagar na maioria das vezes, abrangendo de ~50 a 100 MiB/s. Eu pensei que a quantidade de dados para NÃO gravar por causa dos DELTAs superaria facilmente o fato do NAS mais lento, mas esse não parece ser o caso. E a quantidade alterada de dados nas VMs não é muito alta principalmente.

Observação

O que reconheci no NAS foi que o RSYNC parece processar dois arquivos ao mesmo tempo em algum momento. Isso se parece com alguma leitura antecipada ou semelhante:

root@amds1512-01:~# lsof | grep [d]asi_
rsync   6883   root  cwd    DIR   0,33        290   259 /volume1/[...]
rsync   6883   root    0r   REG   0,33 2142633984   580 /volume1/[...]/[...]-s024.vmdk
rsync   6884   root  cwd    DIR   0,33        290   259 /volume1/[...]
rsync   6884   root    1r   REG   0,33 2143748096   579 /volume1/[...]/[...]-s023.vmdk
rsync   6884   root    3w   REG   0,33 2143748096   579 /volume1/[...]/[...]-s023.vmdk

O HTOP mostra claramente que ambas as instâncias de RSYNC são lidas. Apenas ignore os outros processos RSYNC, eles não estão relacionados e o problema ainda persiste mesmo quando um backup é executado exclusivamente.

Captura de tela HTOP

Perguntas

Então, qual é o propósito desses dois RSYNCs em execução com arquivos diferentes no destino de backup? Existe alguma maneira de dizer ao RSYNC para processar apenas um arquivo após o outro?

Isso pode aumentar o tempo de processamento geral com menos carga simultânea. Não consegui encontrar nada como ler adiante ou semelhante na página de manual. Se fizer alguma diferença, as seguintes são as opções usadas:

--owner \
--numeric-ids \
--compress-level=0 \
--group \
--perms \
--rsh=rsh \
--devices \
--hard-links \
--inplace \
--links \
--recursive \
--times \
--delete \
--delete-during \
--delete-excluded \
--rsync-path=[...] \
--specials

Obrigado!

linux backup
  • 1 1 respostas
  • 300 Views

1 respostas

  • Voted
  1. Best Answer
    satwell
    2020-11-08T20:52:44+08:002020-11-08T20:52:44+08:00

    Dê uma olhada em Como funciona o Rsync . Especificamente, existe um processo gerador e um processo emissor que funcionam como um pipeline. O remetente lê o arquivo para enviar ao controle remoto. O gerador é responsável por gerar a lista de arquivos a serem enviados, e também “são criados checksums de bloco para o arquivo base e enviados ao remetente imediatamente após o número de índice do arquivo”.

    Isso definitivamente parece que tem o potencial de causar thrashing no sistema de arquivos se você estiver usando --inplacepara enviar vários arquivos grandes e não tiver RAM suficiente disponível para o kernel manter dois arquivos consecutivos em cache .

    Como teste, você pode tentar transferir arquivos individuais rsync --inpacee ver se o desempenho é significativamente melhor. (Algo como for i in *.vmdk; do rsync [...]; done.) Isso deve ajudar a determinar se ter dois leitores separados está realmente causando o problema de desempenho.

    Se vários leitores estiverem causando o problema de desempenho, uma rota possível seria melhorar a capacidade do kernel de armazenar em cache as leituras, tornando mais RAM disponível para o kernel do host ou tornando seus arquivos vmdk individuais menores.

    Infelizmente, não vejo nenhuma maneira óbvia de alterar o comportamento do pipeline do gerador/remetente no rsync, exceto escrever seu próprio script para chamar o rsync uma vez para cada arquivo. Você pode querer perguntar sobre isso na lista de discussão rsync .

    • 2

relate perguntas

  • Como eu faria minha máquina Linux parecer que está executando o Windows?

  • Existe um equivalente a cd - para cp ou mv?

  • execute o contêiner do docker como root

  • Como ativar o sensor de impressão digital no domínio e no diretório ativo do Linux

  • Como alterar permanentemente Ctrl + C para Ctrl + K no CentOS 7?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 Por que uma conexão de Internet gigabit/s via cabo (coaxial) não oferece velocidades simétricas como fibra? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve