dd x dd pipeline: qual é melhor? [fechadas]

1

Aqui eu li, nos comentários, que um cara tem mais desempenho quando usou dd no pipeline para uma cópia. Como por exemplo:

dd if=in | dd of=out

em vez de

dd if=in of=out

É realmente mais rápido? Por quê? Além disso: ele falou sobre cópia simétrica e assimétrica. Alguém poderia me explicar melhor, por favor?

    
por sl34x 22.07.2015 / 01:07

1 resposta

3

Essa foi uma pergunta interessante, então fiz alguns testes. Do meu teste - copiar dentro do mesmo disco foi realmente mais lento usando o pipe (significativamente - 40 ao contrário de 30 segundos, reproduzido várias vezes.

Quando fiz algo semelhante entre os discos (neste caso, um disco rígido e uma chave USB), não houve diferença perceptível no tempo.

Assim, concluo que, para o caso geral, não é mais rápido, e pode até ser mais lento, no entanto, pode haver alguns casos em que poderia ser mais rápido.

Eu acho que o autor significou por simétrica / assimétrica foi síncrono / assíncrono - ou seja, no caso de "dd if = in de = out" ler dados, e quando isso foi feito [para um bloco] ele escreveu os dados e repetido até que este processo estivesse completo. No segundo caso, ele infere que leu os dados e, em seguida, enquanto estava lendo, escreveu os dados no segundo disco usando um fluxo. Isso é plausível - embora meus testes não tenham confirmado um aumento de velocidade - é claro que posso pensar em muitas variações para tentar, algumas das quais podem, de fato, ser mais rápidas - embora eu especule que usar tamanhos de blocos maiores é uma maneira melhor para obter um aumento de velocidade.

    
por 22.07.2015 / 02:11

Tags