Por que a velocidade de cópia do meu arquivo de rede forma uma onda?

16

Com a atualização para o Windows 10, agora tenho esse bom gráfico ao copiar arquivos.

Quando copio um único arquivo grande, a velocidade sempre assume essa forma de onda razoavelmente consistente. O que causa isso?

A conexão é

My PC <- cable -> gigabit switch <- cable -> Netgear ReadyNAS

Os arquivos estão sendo copiados via SMB, este gráfico mostra uma dessas cópias em cerca de um minuto:

Gráfico da velocidade de cópia do Windows 10

Não há problema aqui, eu só quero entender como as coisas funcionam.

Gricey
fonte
11
Mais alguns detalhes sobre a configuração do disco do ReadyNAS ajudariam. Você está usando RAID 5 em três unidades? Qual é a velocidade de gravação em cada unidade? Qual é o buffer em cada unidade e existe algum cache que o ReadyNAS utilize? Você já experimentou outras ferramentas como o TeraCopy para verificar se suas taxas de transferência diferem? Caso contrário, pode haver um gargalo na gravação do cache de disco, especialmente se as taxas de gravação não forem boas (por exemplo, Seagate Barracuda).
Sun
Você fechou todos os outros processos que podem estar usando o NAS em intervalos?
Arjan

Respostas:

6

Resposta curta: cache de gravação

TL; DR: Primeiro, há muito menos sobrecarga ao copiar um único arquivo grande, em comparação com muitos menores. Isso significa que o PC e o NAS não estão "perdendo" muito tempo procurando arquivos, atualizando a tabela de arquivos e os metadados do sistema de arquivos. Isso também significa um rendimento muito maior, que provavelmente revelará alguns dos gargalos de largura de banda na configuração.

Os picos e vales no gráfico da largura de banda parecem ocorrer em intervalos razoavelmente regulares e, considerando que você está copiando um único arquivo grande (largura de banda máxima, sobrecarga mínima), eu diria que está vendo o efeito do buffer / cache .

Parece-me que você provavelmente está enviando dados para o NAS a uma taxa mais rápida do que é capaz de gravá-los em disco. Graças à gravação de cache / buffers, ainda é possível recebê-lo em uma taxa mais rápida (os picos do gráfico), mas você não pode continuar recebendo dados sem enviá-los para o disco.

Eventualmente, o buffer ficará cheio e precisará ser gravado no disco. Enquanto isso, o NAS não pode receber dados tão rápido quanto antes, pois não tem onde armazená-los (o buffer está cheio e os discos são mais lentos). É aqui que você obtém os vales do gráfico.

Parece que o Windows está suavizando o gráfico de taxa de transferência. Com gráficos mais precisos (por exemplo, do Monitor de desempenho), você pode realmente estimar o tamanho do buffer de gravação, analisando os intervalos e os bytes transferidos.

A razão pela qual os picos e vales não ocorre em intervalos perfeitamente uniformes é provavelmente porque o PC, o NAS ou ambos estão fazendo "outra coisa" enquanto você copia o arquivo.

abstrask
fonte
Isso não produziria uma linha horizontal com picos repentinos (até zero) quando o buffer estiver cheio?
Arjan
O gráfico de cópia de arquivo parece estar suavizado, provavelmente para apelo visual. O PerfMon provavelmente produziria um gráfico muito mais preciso. Além disso, isso dependeria do algoritmo usado para liberar o disco - por exemplo, interrompa o recebimento de dados até que tudo seja gravado no disco e limite o recebimento de dados a uma taxa mais lenta, o que permite gravar no disco mais rapidamente do que o recebimento de novos dados.
abstrask
17

É difícil responder com autoridade sem muita investigação adicional. Obrigado por atualizar sua pergunta com a escala de tempo e o protocolo.

Poderia normal "vieiras" TCP. O TCP vai o mais rápido possível até experimentar a perda de pacotes. Depois recua um pouco e sobe novamente. Então ele continua "batendo a cabeça no teto". É assim que maximiza a largura de banda disponível sem piorar o congestionamento. Eu costumo olhar vieiras TCP em um gráfico TCPTrace, que é um pouco diferente deste gráfico. Eu esperaria que parecesse um pouco mais semelhante a um dente de serra nesse tipo de gráfico, mas pode haver alguma suavização nesse gráfico. E agora que penso nisso, as vieiras TCP estariam em uma escala de tempo muito menor do que este gráfico parece mostrar.

Também pode ser que seu protocolo de sistema de arquivos remoto (SMB) leia o arquivo um pedaço de cada vez, e os mergulhos são onde uma leitura de pedaço foi finalizada e a próxima está sendo solicitada.

Spiff
fonte
Desculpe pela falta de detalhes, eu não tinha certeza do que as pessoas precisariam saber. Estou usando SMB e esse gráfico abrange um período de cerca de um minuto
Gricey
4
@Gricey: Não comente: corrija a questão!
Lightness Races com Monica
-1 para minúcias desnecessário
Mehrdad
@LightnessRacesinOrbit fixado
Gricey 17/08/2015
11
@ Gricey Peço desculpas por ser tão exigente quanto aos detalhes. Entendo o sentimento de que, se você não sabe de quais detalhes as pessoas precisarão, é difícil documentar várias coisas. É um equilíbrio difícil entre documentar o suficiente para que as pessoas que estão ajudando não fiquem frustradas e sentir que talvez você esteja perdendo tempo documentando coisas que não importam.
Spiff
0

Acho que a Microsoft introduziu esse recurso na barra de progresso no Windows 8.

Esquerda para a direita mostra o progresso em porcentagem e o movimento para cima e para baixo mostra a taxa de transferência em MB / s .

As taxas de transferência são determinadas pela velocidade da mídia (BUS ou Rede), número e tamanho dos arquivos, sistema de arquivos e disponibilidade de recursos, etc.

Também durante uma transferência de arquivos, muitos metadados são lidos / gravados.

Você está vendo uma onda razoavelmente consistente, pois essa sobrecarga de leitura / gravação de metadados é reduzida e outros recursos estão sendo usados ​​na mesma taxa. Quedas ocasionais podem ser eventos de perda de pacotes, próxima leitura de bloco, pesquisa de recursos, etc.

Para mais esclarecimentos, aqui estão outras leituras

trocadilho
fonte
3
Isso realmente não responde à pergunta.
Lightness Races com Monica