É um tipo de ocorrência regular que, depois de fazer o SSH em um servidor (ou mesmo abrir um terminal no meu Mac), o banner de login é impresso imediatamente, mas leva ~ 10 segundos a um minuto para o prompt do shell aparecer. Depois disso, o desempenho é bom e a latência da rede não é incomum.
Isso não parece uma tarefa computacionalmente difícil, com muita memória ou muito IO. O que está fazendo com todos esses bilhões de ciclos de CPU?
ssh
performance
shell
jacobbaer
fonte
fonte
ssh -v -v -v
eur_shell -x
podem ser etapas prudentes de depuração..bash_history
?Respostas:
Algumas coisas podem estar acontecendo aqui. Você pode encontrar a maioria das respostas no manual do seu shell, mas geralmente são incrivelmente longas e oblíquas, então ...
Provavelmente, seu problema se resume a uma das poucas coisas.
Se seu perfil ou bashrc tiver coisas caras, considere recortá-las.
Se o seu perfil ou bashrc usar uma pesquisa DNS reversa (para definir o prompt ou algo assim), corrija o DNS ou use o nome do host.
Os shells abrem muitos arquivos, entre outras coisas, durante a inicialização. Se a carga do sistema for alta, ela geralmente aparecerá aqui.
Se o banner for pré-autenticação, também poderá ser uma autenticação (pam, LDAP etc.) lenta.
Pode não ser nenhuma dessas coisas, no entanto. Uma quantidade surpreendente de coisas acontece logo antes de exibir o prompt!
fonte
Provavelmente, está esperando pelo DNS ou tentando se autenticar via LDAP ou algo assim.
Tente adicionar
UseDNS no
ao / etc / ssh / sshd_configSe isso também ocorrer em logons locais, verifique se algum servidor LDAP ou DNS configurado por você está lento ou não responde.
fonte
Uma possibilidade (coberta por outras respostas) é que o processo de configuração da própria sessão SSH é onde o tempo é perdido.
Outra alternativa é que os scripts de inicialização do shell em execução na máquina remota após o estabelecimento da sessão SSH tenham algo demorado (talvez tentando acessar alguma montagem de rede quebrada). Você pode depurar essa segunda possibilidade da seguinte maneira:
Adicione temporariamente o seguinte à parte superior do seu
~/.bash_profile
:As
set -x
voltas sobre alguma depuração para cada comando shell executado. APS4
variável controla como essa depuração é apresentada - especificamente neste caso, usamosdate
para adicionar registros de data e hora.Você pode analisar os carimbos de data e hora da saída de depuração para ver quais comandos nos scripts de inicialização estão demorando muito.
fonte
Se for um servidor Ubuntu, a configuração de login padrão verifica se algum pacote é atualizável toda vez que um shell de login é executado. Se as listas de pacotes não estiverem no cache do disco, isso pode levar um ou dois segundos em uma área de trabalho inativa rápida.
Para gerar essa mensagem "reiniciar necessário", era necessário verificar se o kernel atualmente em execução não é o kernel padrão atualmente instalado. (ou seja, havia um kernel e eu ainda não reinicializei.) Ele também imprimirá uma contagem de atualizações de segurança disponíveis, se houver alguma.
Eu acho que essa é a maior desaceleração no login no Ubuntu que foi introduzida recentemente.
Caso contrário, seu
~/.bash_profile
/~/.bashrc
pode ser o problema.Você já tentou fazer login no servidor por conta própria (
ssh localhost
)? Ou logando pela segunda vez imediatamente? (Para ver se é muito mais rápido quando o material é armazenado em cache.)fonte
Na maioria dos casos, esse é o tempo limite de uma solicitação de DNS.
Causa: o servidor tenta uma pesquisa DNS reversa usando o endereço IP do cliente e não obtém uma resposta. Se A se conectar a B, B tentará converter o endereço IP de A em um nome.
Solução alternativa: digite o endereço IP e o nome do cliente no arquivo de hosts do servidor.
Solução: torne todos os hosts conhecidos no servidor DNS.
fonte