AppServer pendura

View: New views
6 Messages — Rating Filter:   Alert me  

AppServer pendura

by Eduardo Bobsin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Pessoal,

Tenho uma aplicação web que de vez em quando pendura o appserver (JBoss 4.2.1).
O problema acontece somente no ambiente de produção.
Essa instância do appserver roda somente essa aplicação. Uso a JDK1.5.0.
Tenho outras instâncias de JBoss com outras aplicações no mesmo servidor e todas funcionam muito bem.

O estranho é que o appserver não responde HTTP, não executa nenhum timer (Quartz) e não mostra nenhuma Exception. Não é problema de memória (monitoramos isso ativamente). Aparentemente todas as threads trancam! A única maneira de derrubar é com um kill -9.

Colocar um profiler no ambiente de produção é complicado mas seria a última opção. Teria que ficar com o profiler pendurado por dias até ocorrer o problema.

De que forma eu poderia identificar ou isolar o problema? Idéias?

-------------------------------------
Eduardo Bobsin Machado

Re: AppServer pendura

by Ivan Aguirre :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Tente usar o jstack ou o jconsole para ver onde as thread estão paradas (eles inclusive conseguem
detectar deadlocks).

Monitore também o consumo de recursos (CPU, memória) do processo utilizando
algum utilitário (no Linux tem o "top"). Se você utilizar o banco de dados faça a
mesma observação no host do banco.

att.

Ivan

2009/10/29 Eduardo Bobsin <eduardo.bobsin@...>
Pessoal,

Tenho uma aplicação web que de vez em quando pendura o appserver (JBoss 4.2.1).
O problema acontece somente no ambiente de produção.
Essa instância do appserver roda somente essa aplicação. Uso a JDK1.5.0.
Tenho outras instâncias de JBoss com outras aplicações no mesmo servidor e todas funcionam muito bem.

O estranho é que o appserver não responde HTTP, não executa nenhum timer (Quartz) e não mostra nenhuma Exception. Não é problema de memória (monitoramos isso ativamente). Aparentemente todas as threads trancam! A única maneira de derrubar é com um kill -9.

Colocar um profiler no ambiente de produção é complicado mas seria a última opção. Teria que ficar com o profiler pendurado por dias até ocorrer o problema.

De que forma eu poderia identificar ou isolar o problema? Idéias?

-------------------------------------
Eduardo Bobsin Machado


Re: AppServer pendura

by Felipe Gaucho :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

em 99% dos casos isso é sintoma de servidor esperando recurso.. o caso
clássico é um código que abre conexões com o banco e não fecha..
quando a aplicação esgota o número de conexões, a próxima requisição
fica esperando uma conexão que não está disponível.. pode demorar até
o timeout do banco..

o mesmo sintoma se aplica a qualquer recurso, como JMS, JavaMail, etc....

Dica: use uma ferramenta para monitorar o numero de conexões no banco
de dados......

se não for isso, parta para o profile completo da aplicação.. * mas
sempre é o banco :)  ** o JDK 7 vai resolver este problema,
finalmente..



2009/10/29 Ivan Aguirre <ivan.aguirre@...>:

> Tente usar o jstack ou o jconsole para ver onde as thread estão paradas
> (eles inclusive conseguem
> detectar deadlocks).
>
> Monitore também o consumo de recursos (CPU, memória) do processo utilizando
> algum utilitário (no Linux tem o "top"). Se você utilizar o banco de dados
> faça a
> mesma observação no host do banco.
>
> att.
>
> Ivan
>
> 2009/10/29 Eduardo Bobsin <eduardo.bobsin@...>
>>
>> Pessoal,
>>
>> Tenho uma aplicação web que de vez em quando pendura o appserver (JBoss
>> 4.2.1).
>> O problema acontece somente no ambiente de produção.
>> Essa instância do appserver roda somente essa aplicação. Uso a JDK1.5.0.
>> Tenho outras instâncias de JBoss com outras aplicações no mesmo servidor e
>> todas funcionam muito bem.
>>
>> O estranho é que o appserver não responde HTTP, não executa nenhum timer
>> (Quartz) e não mostra nenhuma Exception. Não é problema de memória
>> (monitoramos isso ativamente). Aparentemente todas as threads trancam! A
>> única maneira de derrubar é com um kill -9.
>>
>> Colocar um profiler no ambiente de produção é complicado mas seria a
>> última opção. Teria que ficar com o profiler pendurado por dias até ocorrer
>> o problema.
>>
>> De que forma eu poderia identificar ou isolar o problema? Idéias?
>>
>> -------------------------------------
>> Eduardo Bobsin Machado
>
>



--
Looking for a client application for this service:
http://fgaucho.dyndns.org:8080/arena-http/wadl

---------------------------------------------------------------------
To unsubscribe, e-mail: enterprise-list-unsubscribe@...
For additional commands, e-mail: enterprise-list-help@...


Re: AppServer pendura

by Julio Viegas :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Faça como o Ivan disse: use o jstack no pid do processo do jboss travado. Isso vai fazer um print em cada stack de cada thread, e vc pode analisar onde estah o bloqueio.

Abs,
JV -- julioviegas.com


2009/10/29 Ivan Aguirre <ivan.aguirre@...>
Tente usar o jstack ou o jconsole para ver onde as thread estão paradas (eles inclusive conseguem
detectar deadlocks).

Monitore também o consumo de recursos (CPU, memória) do processo utilizando
algum utilitário (no Linux tem o "top"). Se você utilizar o banco de dados faça a
mesma observação no host do banco.

att.

Ivan

2009/10/29 Eduardo Bobsin <eduardo.bobsin@...>

Pessoal,

Tenho uma aplicação web que de vez em quando pendura o appserver (JBoss 4.2.1).
O problema acontece somente no ambiente de produção.
Essa instância do appserver roda somente essa aplicação. Uso a JDK1.5.0.
Tenho outras instâncias de JBoss com outras aplicações no mesmo servidor e todas funcionam muito bem.

O estranho é que o appserver não responde HTTP, não executa nenhum timer (Quartz) e não mostra nenhuma Exception. Não é problema de memória (monitoramos isso ativamente). Aparentemente todas as threads trancam! A única maneira de derrubar é com um kill -9.

Colocar um profiler no ambiente de produção é complicado mas seria a última opção. Teria que ficar com o profiler pendurado por dias até ocorrer o problema.

De que forma eu poderia identificar ou isolar o problema? Idéias?

-------------------------------------
Eduardo Bobsin Machado



Re: AppServer pendura

by Eduardo Bobsin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Ivan,
Obrigado pela dica do jstack! Já estou dando uma olhada. Pelo que vi não é problema de memória ou de processamento.

Felipe,
Não são conexões de banco esgotadas. Também monitoro isso (e muito mais).

Uma thread esperando por conexão com o servidor de mail ou com o banco  trancaria até a tela de login? :/

Quanto às versões de SDKs, há poucos dias foi decidido que todos os projetos da JBoss devem partir para a JDK6!
Portanto, eu não adotaria a JDK7 tão cedo. Acredito que ambientes de produção não são cenário para early adopters... :)

Obrigado,
-------------------------------------
Eduardo Bobsin Machado


2009/10/29 Felipe Gaúcho <fgaucho@...>
em 99% dos casos isso é sintoma de servidor esperando recurso.. o caso
clássico é um código que abre conexões com o banco e não fecha..
quando a aplicação esgota o número de conexões, a próxima requisição
fica esperando uma conexão que não está disponível.. pode demorar até
o timeout do banco..

o mesmo sintoma se aplica a qualquer recurso, como JMS, JavaMail, etc....

Dica: use uma ferramenta para monitorar o numero de conexões no banco
de dados......

se não for isso, parta para o profile completo da aplicação.. * mas
sempre é o banco :)  ** o JDK 7 vai resolver este problema,
finalmente..



2009/10/29 Ivan Aguirre <ivan.aguirre@...>:
> Tente usar o jstack ou o jconsole para ver onde as thread estão paradas
> (eles inclusive conseguem
> detectar deadlocks).
>
> Monitore também o consumo de recursos (CPU, memória) do processo utilizando
> algum utilitário (no Linux tem o "top"). Se você utilizar o banco de dados
> faça a
> mesma observação no host do banco.
>
> att.
>
> Ivan
>
> 2009/10/29 Eduardo Bobsin <eduardo.bobsin@...>
>>
>> Pessoal,
>>
>> Tenho uma aplicação web que de vez em quando pendura o appserver (JBoss
>> 4.2.1).
>> O problema acontece somente no ambiente de produção.
>> Essa instância do appserver roda somente essa aplicação. Uso a JDK1.5.0.
>> Tenho outras instâncias de JBoss com outras aplicações no mesmo servidor e
>> todas funcionam muito bem.
>>
>> O estranho é que o appserver não responde HTTP, não executa nenhum timer
>> (Quartz) e não mostra nenhuma Exception. Não é problema de memória
>> (monitoramos isso ativamente). Aparentemente todas as threads trancam! A
>> única maneira de derrubar é com um kill -9.
>>
>> Colocar um profiler no ambiente de produção é complicado mas seria a
>> última opção. Teria que ficar com o profiler pendurado por dias até ocorrer
>> o problema.
>>
>> De que forma eu poderia identificar ou isolar o problema? Idéias?
>>
>> -------------------------------------
>> Eduardo Bobsin Machado
>
>



--
Looking for a client application for this service:
http://fgaucho.dyndns.org:8080/arena-http/wadl

---------------------------------------------------------------------
To unsubscribe, e-mail: enterprise-list-unsubscribe@...
For additional commands, e-mail: enterprise-list-help@...



Re: AppServer pendura

by Felipe Gaucho :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

> Uma thread esperando por conexão com o servidor de mail ou com o banco  trancaria até a tela de login? :/

Depende da configuração, mas normalmente quando está esperando
recursos o servidor não responde mais :)

O jeito é usar um profiler e sair rastreando o problema...

---------------------------------------------------------------------
To unsubscribe, e-mail: enterprise-list-unsubscribe@...
For additional commands, e-mail: enterprise-list-help@...