Aumentando a performance do SSH/SCP com HPN-SSH

Publicado por Mauricio Sousa em 30/01/2015

[ Hits: 13.604 ]

 


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 usuario@host -v

Espero ter ajudado!

Abraços.

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

NAT entre a máquina real e máquinas virtuais (VirtualBox)

Jogo Educacional Memória 10

Cinelerra x Slackware 13.37 64 bits

Epiphany - o navegador customizado

Usando o VLC para visualizar imagens de webcam em WM

  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts