SSH sem resposta após parar o Tomcat, muitos usos da CPU do ksoftirqd

6

Eu tenho um problema estranho. Toda vez que eu paro o Tomcat, o SSH fica muito lento, quase totalmente sem resposta. Leva um minuto ou até mais para o SSH aceitar qualquer comando. Quando finalmente recebo o Tomcat novamente, tudo volta ao normal.

Isso está acontecendo em um servidor muito ocupado. O problema é que eu preciso parar o Tomcat frequentemente por causa das atualizações do aplicativo. Normalmente levaria alguns segundos para atualizar, mas aqui leva quase 10 minutos e, por causa disso, estamos passando por períodos de inatividade indesejados.

Uma coisa que vejo é quando eu paro o Tomcat top mostra muitos ksoftirqd/X processos em 100% da CPU. Este poderia ser o problema?

A versão do kernel é: 2.6.18-308.11.1.el5

A versão Red Hat é: Red Hat Enterprise Linux Server release 5.9 (Tikanga)

Alguma idéia do porquê isso está acontecendo?

    
por Paxxil 19.03.2013 / 13:30

2 respostas

1

Eu sei que essa não é a "melhor prática", mas, sugiro que você redefina o tomcat remotamente por meio do ssh e defina as saídas para null:

ssh your_server '/etc/init.d/tomcat restart > /dev/null 2>&1'

(Você pode substituir o comando acima pelo equivalente usado para reiniciar o tomcat).

Esta é uma solução alternativa, não uma solução. Você poderia tentar isso enquanto estava conectado em outra sessão ssh e verificar se o problema ainda ocorre e afeta todas as sessões?

    
por 26.03.2013 / 15:25
0

A conexão lenta ssh / ssh lag é um sintoma de alta carga. A alta carga é geralmente causada pelo bloqueio de io, que é frequentemente causado pela troca.

para verificar sua carga, execute uptime ou top . Você provavelmente verá números de carga acima de 10 quando o ssh não estiver respondendo. Eles provavelmente irão pairar abaixo de 2 durante o uso normal.

execute free ou top para ver seu uso de memória, você provavelmente verá muita troca.

Depois de descobrir os sintomas da raiz, é possível pesquisar por que "tomcat swapping on shutdown" ou "tomcat high load", provavelmente porque está tentando gravar algumas coisas armazenadas no cache ou trocar para o disco. Seu tamanho máximo de heap do tomcat jvm é maior que a quantidade de memória que você tem?

Talvez algo que se conecte ao seu aplicativo da web seja repetido constantemente quando ele cair no cenário de DoS.

Tudo isso pode ser específico para seu aplicativo da web, portanto, use termos gerais.

    
por 10.05.2013 / 18:03