Por que o SSH congelaria por minutos de cada vez quando outro tráfego não é afetado?

2

Eu notei que quando eu SSH em uma máquina remota através de um link lento, o SSH parece "grudar" depois que uma quantidade relativamente grande de dados é transferida.

Por exemplo, escrever texto sobre o link é bom, mas executar ls /etc irá congelar a conexão por alguns minutos.

Eu entenderia se o atraso ocorreu porque eu estava maximizando a velocidade da conexão e ela voltou ao normal depois que os dados foram transferidos, mas a conexão congela por muito mais tempo do que você esperaria pela quantidade de dados realmente envolvidos.

O mais estranho é que, se eu abro duas conexões SSH de e para as mesmas máquinas, quando uma delas está congelada, a outra ainda funciona bem. Então, eu não posso estar maximizando a velocidade da conexão, caso contrário, eles congelariam ao mesmo tempo.

Não há modelagem de tráfego ativa em qualquer caixa ou (tanto quanto eu posso dizer) os roteadores no meio, por isso não deve ser nada perdendo pacotes para manter a velocidade média de transferência dentro de um determinado intervalo.

Alguém pode sugerir algo que possa causar esse tipo de comportamento ou algo mais a verificar?

A mesma coisa acontece com scp e sshfs , com scp relatando uma taxa de transferência enorme (muitos MB / s, então a velocidade lentamente retorna para stalled por alguns minutos e, em seguida, se eu ' Com sorte, ele será repetido até que o arquivo termine a transferência.) sshfs funciona, mas frequentemente (nem sempre) depois que um arquivo é salvo, o ponto de montagem não responde por alguns minutos, bloqueando temporariamente qualquer programa que tente acessá-lo.

EDIT: Eu tentei usar iperf e obter algumas estatísticas interessantes:

Local:  0.0- 0.9 sec   256 KBytes  2.25 Mbits/sec
Remote: 0.0- 7.0 sec   256 KBytes   302 Kbits/sec

Local:  0.0-15.9 sec  1.00 MBytes   529 Kbits/sec
Remote: 0.0-16.0 sec  1.00 MBytes   524 Kbits/sec

Parece que abaixo de uma certa quantidade de dados, a extremidade local pode enviar muito mais rápido do que o controle remoto pode receber. Eu acho que isso não é um problema SSH depois de tudo. Vou investigar algumas configurações de TCP que podem ajustar isso, mas se alguém souber alguma com certeza por favor avise!

    
por Malvineous 21.12.2017 / 09:06

1 resposta

6

Sua conexão SSH está excedendo o tamanho da MTU em algum lugar entre o cliente e o servidor, e a Descoberta da Unidade de Transmissão Máxima do Caminho não está funcionando. (Este é um dos vários motivos pelos quais a prevenção geral do tráfego ICMP em nome da segurança é uma má ideia.)

Leitura adicional

por 21.12.2017 / 13:25

Tags