Melhorando o desempenho do SCP e SFTP

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

6 thoughts on “Melhorando o desempenho do SCP e SFTP

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

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

    =)

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

Leave a Comment

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *