Uma dica que pode ajudar em nosso dia-a-dia (profissional).
Como sabemos, o protocolo ssh v1 e v2 utiliza túneis criptografados para a transferência de dados. Devido a este detalhe, notei que transferências de arquivos grandes com sftp ou scp se limita bastante em redes 1024Mbps (GLANs). A algum tempo notei isso, e agora tenho uma solução “melhoria” após umas googleadas.
O protocolo SSH e suas ferramentas suportam vários algorítimos de criptografia (cipher’s), e dentre os vários suportados encontrei o que menos impacta no desempenho das transferências, o arcfour (arc4).Para utilizarmos este nas cópias via scp por exemplo, basta informar com o prâmetro -c o “cipher” a ser usado. Vejam a baixo a diferença de uma transferência padrão em comparação com uma criptografada com o “cipher” arcfour:
[root@localhost /]# scp arquivo.gz usuario@servidor:/tmp/
arquivo.gz 11% 632MB 39.6MB/s 02:04 ETA
Killed by signal 2.
[root@localhost /]# scp -c arcfour arquivo.gz usuario@servidor:/tmp/
arquivo.gz 11% 657MB 65.8MB/s 01:14 ETA
Killed by signal 2.
Basicamente 25MB a mais por segundo de cópia. A solução “mega power” mesmo seria o desconforto de uma transferência FTP =) .
Para o sftp é necessário passar a opção Cipher=arfour (sftp -o Cipher=arcfour … ).
Por: Franklin Moretti
Referências:
man ssh 1
man scp
http://bbs.archlinux.org/viewtopic.php?id=9107
http://ubuntuforums.org/showthread.php?t=815798
Boa FRank!
Recebí seu e-mail, já encaminhei aos companheiros de trabalho aqui na empresa. Show! Realmente faz diferença quando precisamos acelerar tempos de cópia.
Ainda não testamos mas agora já sabemos que existe, com certeza vou usar na próxima vez que eu precisar do SCP 😉 -c arcfour na cabeça.
Valeu!
Uma dica pra quem não vai lembrar do -c arcfour (não é o meu caso, gosto e tenho facilidade pra decorar esse tipo de informação) é colocar no /etc/bashrc o alias:
alais scp=’scp -c arcfour’
=)
Há também a opção de adicionar esta configuração como padrão para um usuário em questão, através do ~/.ssh/config, conforme referencias do post…
Até..!
Hoje fizemos na prática la na empresa, copiando um arquivo entre um Linux CentOS e um HP-UX ..sem usar -c arcfour e usando -c arcfour.. A diferença pra melhor é gritante…
Pode melhorar mais se você incluir o parâmetro -C (compressão).
Olá Marco. Concordo com você, porém em uma rede local Giga ou até mesmo 100Mbps a quantidade de Bytes a serem compactados em um intervalo de 1 segundo seria menor que a quantidade de bytes transmitidos no mesmo intervalo de tempo, basicamente teríamos uma queda na taxa de transferência quando a largura de banda do link for maior que o poder de compactação por segundo do servidor de origem. Caso contrário, tem-se sim um ganho enorme com a opção -C.
Faça os testes… Na rede Giga usada no post, com servidores IBM x3500 (2x Xeon 4c 2,5Ghz + 16Gb) a taxa com a opção -C caiu para ~15Mb/s, enquanto que sem, conforme o post a taxa é de ~65Mb/s. Em contrapartida, em um dos links que tenho disponível para um teste (4Mbps Full-Duplex) a taca com a opção -C é de ~850Kb/s contra 450Kb/s sem a opção.
Espero ter ajudado com este comentário, pois nem sempre temos ganho ao utilizar compressão na transmissão de dados.
Abraços, e obrigado pela visita/post ao blog.