Na conexão gigabit, o Teracopy faz 31MB / s, mas o Windows 8 faz ~ 109MB por segundo?

13

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

Gaurang
fonte
2
A primeira coisa que vem à mente é: como você copiou via teracopia? Para / de uma letra de unidade? (que serializa as coisas e é mais lento) ou para um caminho UNC?
Hennes
Acabei de compartilhar as pastas (clique com o botão direito do mouse em> compartilhar> Compartilhar esta pasta ou equivalente) nos dois computadores. Para acessar o computador em rede, basta abrir "Rede" no painel esquerdo do Explorer e no OS X, selecionando o nome do computador em rede no painel esquerdo do Finder. Para simplificar, acesso os arquivos do Mac a partir do Explorer no Win 8, copio-os usando o comando Ctrl + C básico e colo-o localmente na área de trabalho do PC.
precisa saber é
Quais unidades você usa? Dois SSDs? Esses números do Windows 8 parecem estranhos para mim.
Apache

Respostas:

16

Na conexão gigabit, o Teracopy faz 31MB / s, mas o Windows 8 faz ~ 109MB por segundo?

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

Duas palavras: verificação e cache

Explicação técnica

Este é o procedimento geral para copiar um arquivo com o Windows Explorer:

  1. Leia um pedaço de dados da unidade de origem na memória
  2. Envie a parte através do (s) sistema (s)
  3. Escreva o pedaço na unidade de destino
  4. Se ainda não tiver concluído, retorne à etapa 1

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):

  1. Leia um pedaço da unidade de origem
  2. Hash da leitura da parte da unidade de origem
  3. Envie a parte através do (s) sistema (s)
  4. Escreva na unidade de destino
  5. Limpar caches
  6. Leia o pedaço de volta da unidade de destino
  7. Hash do pedaço da unidade de destino
  8. Comparar hashes
  9. Determinar o próximo passo
    • Se os hashes não corresponderem, dê um erro e solicite ao usuário a ação
    • Se os hashes corresponderem e não tiverem terminado, volte para a etapa 1

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:

  1. Leia um pedaço da unidade de origem
  2. Envie a parte através do (s) sistema (s)
  3. Escreva na unidade de destino
  4. Se ainda não tiver concluído, retorne à etapa 1
  5. Cópia concluída, caches limpos e verificação
  6. Leia um pedaço da unidade de origem
  7. Hash do pedaço da unidade de destino
  8. Leia um pedaço da unidade de destino
  9. Hash do pedaço da unidade de destino
  10. Comparar hashes
  11. Determinar o próximo passo
    • Se os hashes não corresponderem, dê um erro e solicite ao usuário a ação
    • Se os hashes corresponderem e não tiverem terminado, volte para a etapa 6

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:

  • Transferência local de arquivos: 875 Mbps (ou seja, velocidade da unidade)
  • Velocidade da rede: 1Gbps = 119.21 MBps
  • Copie através do Windows Explorer: 109 MBps
  • Copie através do TeraCopy: 34MBps

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-.


Captura de tela da caixa de diálogo de preferências do TeraCopy com configurações padrão

Synetech
fonte
1
Na sua opinião, você recomenda, se estiver usando um SSD para habilitar (marque) a opção "Usar cache de gravação do sistema" se estiver procurando o desempenho máximo?
Tio Iroh
1

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 ...

MDT Guy
fonte
0

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! :)

user1376156
fonte
1
Gostaria de acrescentar que a configuração para usar o cache de gravação do sistema quando usado parece fazer uma diferença significativa na conclusão em tempo real. Muito mais rapido.
precisa saber é o seguinte
Como você está obtendo 14 Gbps na rede? Mesmo o SATA III não suporta essas velocidades.
March Ho
0

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.

glugglug
fonte
2
Se essa fosse a causa, todo o tráfego da rede TCP seria lento. Não apenas redes de teracópias, mas sim uma cópia rápida do explorer.
Hennes
0

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

insira a descrição da imagem aqui

Gi Cakov
fonte
-1

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.

Michael
fonte
1
Eu estava prestes a experimentar o Ultracopier ... E eu pesquisei no google e o wiki afirma que é um malware disfarçado como um substituto para o arquivo do Windows Explorer ... CUIDADO! Cuidado! "A ultracopiadora é um malware que se disfarça como uma ferramenta para substituir a funcionalidade de cópia de arquivos do Windows Explorer / File Explorer." en.wikipedia.org/wiki/Ultracopier
2
Ultracopiadora é um malware - eu não recomendo usá-lo. ( en.wikipedia.org/wiki/Ultracopier )
Art Gertner
4
Se você realmente ler o artigo vinculado por essa página da wiki , é divulgado: "Para financiar, coloquei um minerador de Bitcoin (que usa a GPU a 100%) ou uma versão sem ele, mas com um pequeno anúncio em as versões gratuitas ". Mas é um ponto válido sobre o software não declarar claramente isso no site de download.
Mokubai