Tenho uma conexão gigabit entre meu PC e meu servidor (os testes do iperf3 mostram ~930Mbps) e quero poder transferir arquivos grandes o mais rápido possível. O disco rígido do servidor está conectado via USB3 e é um Rock64. Com ssh (estou usando btrbk com ssh), acho que o gargalo é provavelmente ssh devido ao alto uso da CPU e altas temperaturas (~ 60C). Desativei a compactação, embora ache que ela esteja desativada por padrão (coloque-a em ~/.ssh/config). Só consegui velocidades de até 350Mbps no máximo mas oscilou bastante, não acho que o Rock64 aguente as cifras com tantos dados. E depois de um tempo, ele diminuiu a velocidade (menos de 1 Mbps) por algum motivo que não tenho certeza. Reiniciar a transferência funcionou. (Pode não ser relevante para a pergunta).
Preciso de uma cifra que possa fazer pelo menos 480 Mbps. Você provavelmente pode diminuir um pouco esse número devido às velocidades realistas do USB3. Não estou muito preocupado com a segurança porque são apenas conexões Ethernet do PC> roteador> servidor, mas nenhuma criptografia/fraca seria um exagero de qualquer maneira. Então, de preferência, a cifra mais segura que pode funcionar acima das velocidades.
Responder1
Cada cifra pode suportar 480 Mbps – mas muitas CPUs não conseguirão executar essa cifra com rapidez suficiente. Então o que você está procurando é uma implementação rápida o suficiente para sua CPU.
A cadeia de execução é
read from disk -> encrypt -> send over network -> decrypt -> write to disk
Então, primeiro tudo que você precisa ter certeza é que é realmente a criptografia que atrapalha você
Comece com nc
em vez de ssh
nc -l -p 9999 > /path/to/destination/file # on the receiving side
nc -N [ip.of.receiver.pc] 9999 < /path/of/original/file # on the sending side
Isso eliminará a en-/descriptografia da cadeia e lhe dará uma ideia das velocidades reais possíveis.
Em seguida, verifique se o seu lado de envio possui criptografia acelerada por hardware para algumas cifras. Provavelmente não, mas vale a pena tentar.
Tentar a arcfour
cifra pode lhe dar esperança
Responder2
Encontrei uma velocidade de cifra interessanteblog. Dá uma ideia de como medir a velocidade da criptografia sem rede.
for i in `ssh -Q cipher`; do dd if=/dev/zero bs=1M count=100 2> /dev/null \
| ssh -c $i someuser@localhost "(time -p cat) > /dev/null" 2>&1 \
| grep real | awk '{print "'$i': "100 / $2" MB/s" }'; done
Assim, você pode realmente medir o desempenho das cifras em seu hardware específico.