Mover arquivos em uma rede local - a compressão aumentaria a velocidade?

7

Estou movendo cerca de 20Gb dentro da minha rede local (100 Mbit / seg). Os arquivos são de um sistema típico de desktop Linux.

Compactá-los usando o Tar \ Gzip e, em seguida, enviá-los melhorará o desempenho?

EDIT: Estou mudando o espaço de trabalho de um desenvolvedor, o que significa muita fonte e PDFs, e não muito multimídia.

    
por Adam Matan 18.08.2009 / 14:07

8 respostas

5

Isso depende muito do tipo de arquivo que você está movendo.

  • Se os seus arquivos forem como PDF, filmes JPEG, arquivos de instalação, etc,
    eles provavelmente já estarão compactados e não lhe darão uma grande vantagem.
  • Se a compactação dos arquivos de origem for bastante útil.
  • Se houver muitos arquivos pequenos, será útil pelo menos um arquivo tar .

Finalmente, se a sua máquina de origem tiver muito poder de processamento e memória,
compressão seria em tempo útil - senão apenas um tar (baseado em pontos acima) seria suficiente.

Como sua rede é de apenas 100 Mbps, você deve se inclinar para a compactação se isso ajudar.
Mas, se você estiver transferindo arquivos que não podem ser muito compactados,
você deve começar a contabilizar o tempo de transferência

Alternativamente , você pode considerar outras mídias para transferência (como USB / DVD).

    
por 18.08.2009 / 14:08
5

Além do tipo de arquivo, isso é especialmente dependente da quantidade de arquivos. Embora a transferência de dados em massa seja teoricamente possível na velocidade da rede, há muita sobrecarga associada às operações do sistema de arquivos, como enumerar arquivos e propriedades, criá-los e excluí-los.

Se você tiver uma grande quantidade de arquivos pequenos, a sobrecarga poderá até ficar maior do que os dados a serem transmitidos.

Em tais casos, arquivar os dados antes da transmissão pode ser um grande benefício. Se forem dados dificilmente compactáveis (dados criptografados e / ou já comprimidos), eu recomendo não compactar o arquivo para economizar muito tempo - apenas use tar.

Se os arquivos forem compactáveis (bitmaps não compactados, texto), a compactação também poderá fazer sentido.

    
por 18.08.2009 / 14:15
2

Nik está correto, depende dos dados. De um modo geral:

  • As fotos, os filmes e a música JPEG provavelmente não serão substancialmente mais compactados por tar ou zip, pois eles já estão efetivamente compactados.
  • A compactação de arquivos de texto e binários do programa proporcionará uma economia significativa de espaço (e, portanto, de tempo de transmissão).
por 18.08.2009 / 14:11
2

Tecnicamente sim, embora em uma LAN os ganhos sejam pequenos.

Basicamente, nas transferências de rede, você passa por vários estágios solicitando se o destino está pronto para receber suas informações, então você envia algumas e verifica se elas foram recebidas corretamente. Cada arquivo individual gera uma etapa extra de 'novo arquivo recebido' e 'terminado esse arquivo'. Portanto, se você compactar todos os arquivos, você só incorreria em uma mensagem 'novo arquivo recebido' e um 'terminará esse arquivo' em vez disso, centenas ou milhares de mensagens para enviar arquivos não compactados.

Em uma LAN, você pode levar mais tempo para compactar seus arquivos e enviá-los, em vez de simplesmente enviá-los. mude o seu meio de envio para uma WAN e o zip é o caminho a seguir.

    
por 18.08.2009 / 14:15
2

Provavelmente, a técnica mais rápida é indexar os dados, executá-los por meio de um pipe e, em seguida, desimpedir no outro extremo.

Algo parecido com isto

$ tar -czf - root_dir | ssh -c blowfish remote_machine  (cd parent_dir ; tar -xzf -)

O sinalizador -z diz ao tar para compactar, que deve ser muito semelhante a uma etapa gzip separada, que você inclui separadamente, se desejar.

Se você precisar copiar ou sincronizar dados em um tempo subsequente, poderá usar o rsync (-z fornece compactação). Em particular, se o comando acima for interrompido, o rsync confirmará seus dados e enviará qualquer coisa que você tenha perdido.

Será muito mais limpo se o ssh não estiver pedindo senhas, mas acho que funcionará mesmo com senhas.

    
por 18.08.2009 / 16:13
1

A compactação pode levar mais tempo para realmente compactar / enviar / descompactar do que mover os arquivos originais ... No entanto, muitas vezes, alguns arquivos grandes são enviados melhor do que um grande número de arquivos muito pequenos, compactando-os juntos em um único arquivo, e a transferência pode ser uma boa opção.

    
por 18.08.2009 / 14:13
1

Além das respostas anteriores, você também deve ter em mente a carga que estará colocando na rede e como isso afetará outros usuários. Para uma quantidade de dados como essa, especialmente se os mesmos dados forem para vários destinos, consideraria seriamente usar uma unidade externa como meio de transferência.

    
por 18.08.2009 / 15:50
1

Sim. Eu experimentei isso e use esse método para fazer backup de grande quantidade de dados. Se o seu único propósito de copiar o arquivo para recuperar arquivos no disco rígido externo, certamente compactar todos os arquivos / pastas em um ou poucos arquivos ZIP / rar e copiá-los em um disco externo economizará muito tempo.

Escrever um arquivo grande em um drive externo é muito mais eficiente do que escrever milhões de pequenos arquivos individuais.

    
por 09.04.2018 / 10:56