Hoje, tive meu primeiro gostinho de derreter o cérebro da rede Gigabit hoje, entre meu desktop MacMini e Windows 8 Pro 2011 conectado via Cat.5e ao Linksys WRT320N (dd-WRT esportivo).
Depois de garantir que a velocidade da linha nos dois sistemas mostrasse 1 Gbps, continuei copiando um MP4 de 2,4 GB do desktop Mini para o Win 8 (compartilhamento SMB). Embora satisfeito com os 30-34 MB / s que o Teracopy estava mostrando (que era um passo adequado para mim de 10 MB / s), eu ainda estava curioso sobre essa enorme diferença na velocidade anunciada e no mundo real.
Duas horas do Google me fizeram acreditar que havia outros fatores que resultaram em menos velocidade, sendo um deles o SMB. Então, apenas para fazer isso, eu iPerf'd ambos os sistemas e adivinhar o que isso mostrou - cerca de 875mbps em ambos os sistemas!
Eu me deparei com esse pequeno pedaço de informação, depois do qual desliguei o Teracopy e copiei o mesmo arquivo na copiadora normal do Windows 8. 109 MB / s. Cérebros fundidos :)
O que exatamente está causando isso? E posso ativar essas velocidades via Teracopy? Eu realmente gosto dos recursos extras que o Teracopy tem, certamente sentirá falta deles agora: D
Respostas:
Duas palavras: verificação e cache
Explicação técnica
Este é o procedimento geral para copiar um arquivo com o Windows Explorer:
Isso parece simples e curto o suficiente. Com esse algoritmo de transferência, cada byte do arquivo é processado apenas duas vezes: uma leitura e uma gravação.
Além disso, o Windows usa memória (assim como a própria unidade) para armazenar em cache alguns dados. Portanto, em vez de esperar que o pedaço anterior termine de ser gravado e depois ler o próximo pedaço, um novo pedaço pode ser lido enquanto o anterior ainda está sendo gravado. Obviamente, isso não pode durar para sempre, mas o Windows pode usar toda a memória livre restante como um buffer temporário para armazenar a maioria, se não todo o arquivo que está sendo lido na memória.
Você pode ver o cache em ação copiando um arquivo grande - ou uma pasta contendo muitos arquivos - de uma unidade para outra e comparando imediatamente as duas. A comparação será muito mais rápido naquele ponto do que se você fizer isso, mais tarde, porque o arquivo (s) ainda estão na memória, por isso não é realmente lê-los a partir de (s) da unidade.
Como a memória é muito rápida e as velocidades de leitura tendem a ser um pouco mais rápidas que as velocidades de gravação, a taxa de transferência final acaba sendo limitada apenas pela velocidade de gravação da unidade de destino.
O Teracopy pode fazer duas coisas que podem retardar a transferência de arquivos que o Explorer não faz:
Renuncie ao cache e leia diretamente da unidade
Verifique se o destino foi gravado corretamente
Diferentemente do Explorer, que verifica apenas erros básicos durante a transferência, o Teracopy pode realmente verificar se os dados foram gravados corretamente na unidade de destino, a fim de evitar a corrupção de dados que pode ocorrer devido a problemas na mídia de transferência (cabo de rede / unidade / etc. ) ou a própria unidade (setor defeituoso, etc.) Isso significa que ele precisa ler o arquivo do destino para compará-lo ao original.
Dependendo do algoritmo usado e do tamanho do arquivo, a verificação pode ser otimizada até (mas não menos que) três operações de unidade para cada arquivo / bloco de arquivos, em oposição às duas do Explorer: leia o arquivo da fonte, escreva o arquivo para o destino e leia o arquivo a partir do destino.
Veja o que acontece quando você copia um arquivo com Teracopy (com um algoritmo otimizado para HDD):
O problema é que, se você armazena em cache os arquivos durante a transferência, a comparação se torna inútil porque você não está lendo os dados reais na unidade de destino, está lendo a cópia em cache na memória da fonte. Portanto, para verificar corretamente, você deve limpar o cache. Isso pode ser feito após cada leitura e gravação (que é uma operação extra que acabaria sendo executada inúmeras vezes para arquivos de qualquer tamanho significativo) ou apenas uma vez após a transferência do arquivo inteiro.
De acordo com a captura de tela abaixo, o TeraCopy realiza a verificação após a transferência dos arquivos, e não durante. Isso significa que ele usa esse algoritmo de transferência otimizado para CPU / RAM:
Embora esse algoritmo exerça um pouco menos pressão sobre a CPU e a RAM, ele também exerce muito mais pressão sobre as unidades, porque agora cada arquivo precisa ser processado quatro vezes: leia o arquivo inteiro da fonte, escreva-o no destino , leia-o novamente a partir da fonte e novamente a partir do destino.
(Se o TeraCopy fosse otimizado para transferências de rede, evitaria enviar o arquivo inteiro uma segunda vez para verificação e enviar apenas os hashes muito menores, mas que atualmente não parecem ser o caso, e os drivers de rede são tratados da mesma maneira. como unidade local, na verdade, ele relê a fonte.)
Por padrão, o TeraCopy não verifica ou usa o cache. Não verificar iria acelerar a transferência para cima (ou mais precisamente, não retardar para baixo), apesar de não usar o cache iria retardá-lo.
Inscrição
Para determinar seus resultados específicos de velocidade, você teria que verificar suas configurações para ver se as alterou. Em seguida, tente aproximar o tipo de velocidade que você obteria com as diferentes configurações (lembre-se de que elas provavelmente irão interagir, portanto, não é uma simples questão de adicionar ou subtrair).
Dito isto, vamos fazer um cálculo superficial usando seus números:
Logo de cara, vemos que a transferência de arquivos do Explorer está quase maximizando o rendimento da sua rede. Um link de 1 Gbps é igual a 1.000.000.000 de bits por segundo, que em unidades binárias de bytes , é de 119 MBps. O Explorer está com um clock de 109 MBps, e os 10 MB restantes (que eram divertidamente o máximo anterior
:^Þ
) podem ser facilmente explicados por sobrecarga, carga em segundo plano e fragmentação.(Como a taxa de transferência é quase igual à velocidade da rede, podemos supor que a transferência de arquivos do Explorer seja unidirecional e apenas uma cópia de cada arquivo seja enviada.) O Explorer recebe 110 MBps para dois acessos de arquivo por arquivo.
Agora para TeraCopy. Parece que o TeraCopy está obtendo quase exatamente um terço da velocidade do Explorer.
Dependendo de sua caixa de diálogo de preferências indicar com precisão o algoritmo usado, o TeraCopy pode realmente estar enviando o arquivo de origem inteiro duas vezes para que possa verificar a cópia. Imediatamente, isso reduz o rendimento pela metade. Se o cache estiver ativado, isso também reduz a velocidade, pois é necessário aguardar a conclusão de cada gravação antes de poder enviar um novo bloco. Quando combinado com a verificação, pode derrubá-lo ainda mais.
Sua taxa de transferência de 34 MBps parece razoável se você tiver a verificação ativada e o armazenamento em cache. Se você desativar a verificação e o cache, deverá obter o mesmo valor do Explorer (você ainda pode obter um pouco menos ou até um pouco mais, dependendo da diferença entre o código de transferência de arquivo usado pelo TeraCopy e o usado pelo Explorer).
Se você deseja transferir quase 10 GB, tente alterar as configurações e refazer a transferência para cada uma das quatro permutações e anote as velocidades que obtém (por segurança, faça o pedido para que o cache seja off entre execuções:)
V+C+, V+C-, V-C+, V-C-
.fonte
Suspeito que esteja relacionado ao fato de o Windows 8 usar o SMB v. 3 e duvido que a teracopy seja compatível com o SMB v.3 e tenha como padrão o SMB 2. Apenas um palpite ...
fonte
Não posso fornecer uma resposta 100% ao seu problema, mas posso adicionar mais que possam ajudar.
Meu motivo para mudar para o Teracopy deveu-se à maneira como o Windows precisa "calcular" tudo antes de fazer qualquer coisa, e esse próprio cálculo às vezes pode congelar todo o processo. Em outros posts, foi levantado que o tipo de arquivo sendo copiado importava na cópia do Windows, não posso dizer com certeza no Teracopy, pois não vi o que foi levantado. Mas minhas próprias tentativas até agora me deixaram com menos do que você recebe em qualquer caso. Estou apenas copiando tipos de arquivos genéricos, não arquivos de mídia (por exemplo, foto / filme).
Meus testes passaram de um NAS da Seagate de 3 TB com acesso à NIC de GB em uma rede de 100% de GB para um sistema de GB. Melhor caso, 14 Gbps. O Windows muda do NAS para o sistema HD, com 12,4 GBps e demorou um pouco mais para iniciar. Nada se aproximava dos seus 30-34 Mbps, muito menos algo como 109 Mb / s.
Parte disso certamente se deve ao controle de fluxo do NAS, mesmo em uma rede GB. Eu ficaria extremamente feliz se conseguisse 34 GB / s, mais feliz ainda se conseguisse 109 GB / s. Se você encontrar uma copiadora de arquivos mais rápida, poste! :)
fonte
Isso me ajudou com esse problema entre as placas de rede do chipset da placa-mãe Intel.
O TOE (TCP Offload Engine) foi introduzido no Windows em 2003, com resultados horríveis das NICs Broadcom usadas na maioria dos servidores no momento causando corrupção de dados se você "descarregou" a soma de verificação. Parece que os fornecedores da NIC ainda não estão certos, e não é apenas a Broadcom. O descarregamento da rede é quase sempre mais lento e aparentemente mais propenso a erros do que fazer tudo em software. Eu iria nas configurações do seu adaptador e desativaria todo o descarregamento de hardware de qualquer tipo.
fonte
Anteriormente, eu tinha um problema idêntico com transferências lentas via TeraCopy. Celeron J1800 com placa lan integrada Realtek Gigabit 8111C. Eu estava recebendo nada mais que 35-45 megabytes por segundo. Muito frustrante!
Acabou sendo um driver ruim de placa de rede.
Janelas instaladas do zero com drivers OEM. Também fiz o seguinte:
Em Gerenciador de dispositivos / Cartão de rede / Configurações avançadas / Desativar tudo, exceto CONTROLE DE FLUXO.
Em Recursos do Windows, desative Compactação diferencial remota.
Agora a velocidade média está entre 60-70 Mbps
fonte
Também fiz vários testes com o Teracopy 2.3 final e minha Synology Diskstation. De fato, o processo de cópia é muito lento. Copiei arquivos com uma velocidade média de cerca de 40 MB / s.
O programa original de cópia de arquivos do Windows 8 é mais rápido que o Teracopy!
Agora, atualmente estou experimentando o Ultracopier, minhas velocidades atuais são de cerca de 80 MB / s, muito mais rápidas que o Teracopy. Eu gosto do Teracopy, mas acho que o Teracopy tem um problema de cópia em rede.
Como estou copiando muitos arquivos de uma unidade de rede para outra, devo usar o programa de cópia mais rápido possível, porque o processo de cópia sempre é muito longo.
fonte