É mais lento copiar dois arquivos ao mesmo tempo do que copiar um após o outro? [duplicado]

15

Meu chefe estava dizendo que leva mais tempo para copiar dois arquivos ao mesmo tempo do que fazer um e depois o outro, porque o disco rígido precisa mudar a cabeça entre os dois locais no disco. Isso é verdade? Parece-me que o sistema operacional deve ser inteligente o suficiente para corrigir isso (ou seja, ele deve saber copiá-los sequencialmente). Isso é verdade ao copiar para uma unidade conectada a uma porta USB?

EDIT: existem outros fatores relacionados ao sistema de arquivos? Por exemplo, faz diferença copiar 1 diretório contendo 10 arquivos e 10 arquivos de todo o disco? Gostaria de saber apenas sobre um meio de origem e um meio de destino (sem leitura de várias unidades).

Celeritas
fonte
Às vezes, às vezes não.
Daniel R Hicks
Eu acho que essa pergunta poderia se beneficiar de uma referência real, em vez das suposições instruídas pela maioria dos respondentes aqui. Alguém tinha um disco giratório e algum tempo livre? Eu acredito que, para SSD, as diferenças provavelmente serão desprezíveis; enquanto que para o disco rígido, acredito que a resposta pode variar de uma grande penalidade de desempenho a um pequeno benefício, dependendo do número e tamanhos dos arquivos e do desempenho relativo dos discos de origem e de destino (se forem diferentes).
Lie Ryan
1
Além disso, se você estiver transferindo por USB2, provavelmente não haverá diferenças; a velocidade típica de leitura do disco rígido é de cerca de 50 a 100 MB / s, enquanto a velocidade máxima do USB2 é de 32 MB / s; portanto, o gargalo provavelmente será a porta USB, e não a característica do disco rígido devido ao buffer. Em outras palavras, é difícil dizer de uma maneira ou de outra.
Lie Ryan
@LieRyan é muito ruim você não postar o comentário como uma resposta porque ele melhor se adapta a pergunta que eu tinha a intenção de pedir que foi sobre a copiar a partir de 1 disco rígido para um disco rígido externo por USB 2.
Celeritas

Respostas:

12

Vou adiar você para esta pergunta . Parece que a execução simultânea de duas operações de cópia no mesmo disco (embora iniciada através de operações de cópia separadas) levaria mais tempo como resultado da latência gerada pela busca principal entre as operações concorrentes.

Se, no entanto, as operações de cópia forem iniciadas simultaneamente, a grande maioria dos sistemas operacionais modernos é inteligente, como você disse, o suficiente para enfileirar as transferências uma após a outra e deve gerar um tempo de cópia um pouco mais rápido.

Aparentemente, existem vários aplicativos disponíveis para forçar as operações de cópia de arquivo a enfileirar e executar sequencialmente, como Teracopy e FastCopy

A execução simultânea de operações de cópia em vários volumes físicos é outra questão, no entanto. Como está transferindo arquivos através de protocolos alternativos.

Em relação à sua pergunta sobre a cópia em uma unidade conectada a uma porta USB, ela depende fortemente do tipo de memória que a unidade usa e das especificações USB que estão sendo utilizadas (certamente um gargalo notável para USB 1.0 e 2.0), bem como as versões anteriores. fatores mencionados em relação ao volume de origem da cópia.

bosco
fonte
1
isso também não depende da capacidade do processador do sistema?
precisa saber é o seguinte
@Raghunandan Um argumento justo - acredito que depende totalmente da circunstância. Múltiplos núcleos / hyperthreading certamente melhorariam a velocidade de cópia se lendo dados de vários volumes físicos ou SSD / RAMDisk, mas no cenário de um único HDD, os fatores limitantes da velocidade de cópia provavelmente ainda residiriam nas velocidades de E / S do disco e na presença de cabeça - latência do movimento (tenho certeza de que deve haver um termo mais apropriado para isso ...).
bosco
3
@Raghunandan - Pode não ser o sistema operacional tanto quanto o sistema de arquivos (NTFS vs EXT4).
Enigma
2
@Raghunandan PC-24000 DDR3 tem uma largura de banda de 24 GB / s e ainda não é um limite para CPUs modernas, então não acho que seja realmente uma questão de CPU - mesmo que as operações de HDD sejam 100 vezes menos efetivas que as operações de RAM , A CPU ainda pode lidar com pelo menos 245 MB / se isso é mais do que a largura de banda do SSD mais rápida.
precisa saber é o seguinte
1
@Raghunandan sua partição Linux também pode ser em uma parte mais rápida do disco que a partição do Windows (. Por exemplo, fora v dentro)
Ernie
16

Existem muitos fatores aqui que podem afetar isso.

  • Unidade de origem - é este disco giratório ou SSD? Se girar o disco, o layout dos arquivos poderá afetar o desempenho. Como os dois arquivos provavelmente estão em partes diferentes do disco, isso acarretará em multas. Como você disse, se você selecionar dois arquivos de uma vez e iniciar a cópia dessa maneira, o sistema operacional manipulará as cópias seqüencialmente.
  • Layout do arquivo - a fragmentação dos arquivos (na origem e no destino) pode afetar o desempenho de unidades não SSD
  • Destino - se você tiver dois fluxos de gravação gravados em um único destino, retornará ao problema de busca principal (novamente, assumindo que não seja um SSD) e poderá intercalar fortemente os arquivos. Eu trabalhava para uma empresa que fazia armazenamento de alto desempenho, e um dos grandes problemas para eles era o número de fluxos de vídeo em tempo real que eles podiam ler ou escrever (o vídeo em 2k requer ~ 300 megas por segundo). A alternância das gravações desacelerará o processo de cópia e também tornará a leitura do arquivo mais lenta. Obviamente, se o seu disco estiver fragmentado para iniciar, seu arquivo será gravado intercalado de qualquer maneira.
  • origem / destino único / múltiplo - dependendo se todos os seus arquivos vêm de uma unidade ou estão sendo gravados em uma única unidade, o problema de busca principal pode ser mais ou menos
  • tamanho do arquivo - para arquivos realmente pequenos, o problema de busca principal não importará, pois precisaria procurar o próximo arquivo de qualquer maneira (o que significa que, em vez de ir e voltar entre arquivos, a cabeça estaria lendo arquivos sequencialmente)

Quanto a se o sistema operacional é inteligente o suficiente para corrigir isso, em geral eles são. Ou seja, se você copiar vários arquivos simultaneamente (por exemplo, pense em selecionar vários arquivos de uma vez e arraste e solte).

Obviamente, se você iniciar dois cpcomandos, ele executará os dois comandos ou, no Windows, se você copiar / colar arquivos separados e obter duas janelas de progresso de "cópia" na tela, a otimização não ocorrerá. Nesse caso, você disse explicitamente ao sistema operacional que deseja executar as duas cópias simultaneamente, para que não decida que uma cópia é mais importante que a outra e comece a colocá-las na fila.

Ernie
fonte
+1 A única coisa que falta é a configuração RAID , aludida com "única / múltipla origem / destino".
precisa
1
-1 mais do que é dito não está relacionado com a questão
Celeritas
1

Se você selecionar e copiar várias vezes - a partir de uma GUI, ou usando um comando como "copiar C: \ pasta * D: \ pasta \" -, os arquivos serão copiados seqüencialmente de qualquer maneira, tornando a pergunta discutível.

Se você copiar alguns arquivos e enquanto eles estiverem copiando, comece a copiar mais arquivos - por duas operações separadas da GUI ou por dois comandos separados executados simultaneamente como "cp -r / usr / bin / / opt / bin / & cp -r / usr / local / bin / / opt / local / bin / "- seu desempenho quase certamente diminuirá - talvez um pouco (unidade de estado sólido high-end, arquivos grandes em ambas as operações de cópia) ou talvez por um TON (disco giratório, arquivos relativamente pequenos em uma ou ambas as operações). Melhores sistemas operacionais podem atenuar a penalidade de desempenho em algum grau - por exemplo, os kernels modernos do Linux usam o agendador de E / S CFQ (Completely Fair Queuing), que, em certo grau, "agrupa" as operações em bloco para aumentar a eficiência - mas você ainda terá um sucesso no desempenho. Em alguns casos, o acerto pode ser ENORME,

TL; DR - execute apenas uma operação de cópia por vez, independentemente de quantos arquivos individuais estão incluídos nessa operação , se você estiver preocupado com o desempenho.

Jim Salter
fonte