Existe algum Pros / Cons na opção / j Robocopy (cópia sem buffer)?

7

Robocopy tem uma opção de linha de comando /J recomendada para copiar arquivos grandes (copia usando E / S sem buffer).

Quais são as desvantagens (se houver)? Qualquer motivo, isso não está habilitado por padrão? (Isso é o que me fez pensar que pode haver desvantagens.)

    
por Clay Nichols 16.08.2016 / 23:01

3 respostas

5

Grande pergunta.

E / S sem buffer é uma cópia de arquivo simples de um local de origem para um local de destino. A E / S armazenada em buffer aumenta a cópia simples para otimizar as futuras leituras (e grava) no mesmo arquivo copiando o arquivo para o cache do sistema de arquivos , que é uma região da memória virtual. E / s com buffer incorrer em uma penalidade de desempenho na primeira vez que o arquivo é acessado porque ele tem que copiar o arquivo na memória; no entanto, como o acesso à memória é mais rápido que o acesso ao disco, o acesso subsequente ao arquivo deve ser mais rápido. O sistema operacional cuida da sincronização de gravações de arquivos de volta ao disco e as leituras podem ser obtidas diretamente da memória.

A nota de uso menciona arquivos grandes em relação à E / S armazenada em buffer porque:

  1. O custo inicial é caro. A penalidade de desempenho com E / S armazenada em buffer é substancialmente pior para arquivos grandes.
  2. Você recebe pouco retorno. Blocos de arquivos grandes tendem a permanecer no cache por muito tempo, a menos que você tenha uma tonelada de memória em relação ao tamanho do arquivo.
  3. Pode não evitar E / S de disco. As leituras e gravação de blocos de dados de arquivos grandes aumentam a probabilidade de exigir E / S de disco.
  4. Provavelmente você não precisa fazer buffer de qualquer maneira. Arquivos grandes tendem a ser acessados com menos frequência na prática do que arquivos menores.

Portanto, há uma compensação, mas o que é apropriado para você depende do seu caso específico. Se você estiver compactando um monte de arquivos e transmitindo o zip para um destino de backup, sem buffer será o caminho a ser seguido. Copiando um monte de arquivos que acabaram de ser alterados? Buffered deve ser mais rápido.

Por fim, observe que o tamanho do arquivo não é o único fator a decidir entre buffered e unbuffered. Como acontece com qualquer cache, o cache do sistema de arquivos é mais rápido, mas menor que a origem por trás dele. Isso requer uma estratégia de substituição de cache que determina quando despejar itens para abrir espaço para novos itens. Ele perde seu benefício quando itens acessados com frequência são despejados. Por exemplo, se você estiver sincronizando diretórios pessoais do usuário intraday para um local separado (ou seja, enquanto os usuários estiverem usando ativamente os arquivos), a E / S armazenada em buffer se beneficiaria de arquivos já residentes no cache, mas poderá poluir temporariamente o cache com arquivos obsoletos ; por outro lado, sem buffer dispensaria qualquer benefício dos arquivos já armazenados em cache. Nenhum vencedor claro nesse caso.

Nota: isso também se aplica a xcopy /J

Consulte Pergunte ao Blog da equipe de desempenho da Microsoft para mais.

    
por 20.05.2017 / 18:16
1

Eu tentei o seguinte:

Quando você copia de um dispositivo rápido (NAS via Gigabit-Ethernet) para outro dispositivo rápido (disco USB3)

  • sem / J: os dados são lidos em um buffer e gravados depois disso, portanto, a rede ou o disco rígido está ocioso
  • com / J: os dados são lidos e gravados sem espera, portanto, a rede e o disco rígido são usados simultaneamente

Eu sugiro usar essa opção.

    
por 13.03.2017 / 12:33
0

Se você estiver copiando na WAN, recomendo que você NÃO tenha a opção / J ativada para arquivos grandes, pois o tempo médio de cópia aumentará significativamente. Os arquivos que copiei estavam entre 500MB e 23GB.

Em uma linha de 50 Mbps, calculei a média de 43,5 Mbps (outro tráfego e sobrecarga), sem nunca passar abaixo de 32 Mbps SEM / J. Com / J minha média estava em torno de 25Mbps ... olhando para o perfmon, eu pude ver grandes picos e vales no fundo.

Espero que isso ajude alguém.

    
por 09.10.2017 / 10:32