Aumentando a performance do SSH/SCP com HPN-SSH

Publicado por Mauricio Sousa em 30/01/2015

[ Hits: 10.865 ]

 


Aumentando a performance do SSH/SCP com HPN-SSH



O SCP é uma implementação do protocolo SSH2 sobre o OpenSSH e o desempenho de transferência da rede é limitada por buffers de controle de fluxo internos que são estaticamente definidos.

Estes buffers muitas vezes acabam agindo como um gargalo para a taxa de transferência da rede, não permitindo que toda a velocidade do link seja aproveitada, especialmente em links de rede onde se possui uma grande largura de banda.

Pensando nisso foi desenvolvido o projeto HPN-SSH pelo Centro de Supercomputação de Pittsburgh (PSC) que consiste em um patch que modifica o código fonte do OpenSSH permitindo que os buffers sejam definidos em tempo de execução, eliminando assim o gargalo.

O HPN-SSH é totalmente compatível com outros servidores e clientes SSH, assim clientes HPN são capazes de fazer download mais rápido de servidores não HPN, e servidores HPN são capazes de receber uploads mais rápido dos clientes não HPN.

O patch adiciona uma série de características úteis ao desempenho sem comprometer a segurança, que pode aumentar em até 20x vezes a transferência de dados. Porém essa melhoria é dependente de uma série de questões, como velocidade de transferência da rede, taxa de I/O do sistema, incluindo a velocidade do disco e memória, capacidade do processador para realizar a codificação e descodificação.

A versão oficial do OpenSSH faz uso apenas de um núcleo do processador, o HPN-SSH possui adição da cifra AES multi-thread, aproveitando de forma inteligente os recursos de máquinas multi-core.

É possível obter os patches e saber mais sobre HPN-SSH em:
Para instalar o OpenSSH-HPN de forma fácil em uma máquina com Ubuntu, basta adicionar o repositório com os pacotes já compilados, utilize os comandos abaixo:

sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:w-rouesnel/openssh-hpn
$ sudo apt-get update -y
$ sudo apt-get install openssh-server


Para obter a máxima performance é recomendável que você faça um ajuste nas configurações de redes Linux TCP/IP.

Abaixo seguem as linhas que devem ser adicionadas ao arquivo de configuração sysctl.conf. Para uma explicação detalhada de cada alteração acesse:
sudo vim /etc/sysctl.conf

net.ipv4.netfilter.ip_conntrack_max=103728
# optimization start
# increase TCP max buffer size setable using setsockopt()
net.ipv4.tcp_rmem = 4096 87380 8388608
net.ipv4.tcp_wmem = 4096 87380 8388608
# increase Linux auto tuning TCP buffer limits
# min, default, and max number of bytes to use
# set max to at least 4MB, or higher if you use very high BDP paths
net.core.rmem_max = 8388608
net.core.wmem_max = 8388608
net.core.netdev_max_backlog = 5000
net.ipv4.tcp_window_scaling = 1
# optimization end

Utilize o comando abaixo para aplicar as configurações:

sudo sysctl -p

Caso queira ver detalhes do servidor e cliente SSH, use a opção "-v" ao efetuar novas conexões, como na linha abaixo:

ssh [email protected] -v

Espero ter ajudado!

Abraços.

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Virtualbox no Insigne 5.0

Assistindo DVD pelo Totem no SuSE 10.1

Imprimindo fotos em lote com gnome-photo-printer

GNU Solfege - Software de aprimoramento musical para Linux

Colorindo pastas no KDE

  

Comentários
[1] Comentário enviado por fabio em 31/01/2015 - 03:55h

Interessante. O rsync usa o protocolo SSH pra transferência de arquivos, isso aí deve ajudar bastante.



Contribuir com comentário