[firebase-br] RES: Consumo de memória muito Alto (Não libera)

Wesley Oliveira wesley em rgsystem.com.br
Qui Dez 5 09:14:28 -03 2013


Obrigado pessoal!

Analisamos nossa rotina direitinho e vimos que não era ela o problema. O
problema eram as consultas antigas do sistema que utilizavam um método
errado. Não abria transação e não liberava as queries criadas. Isso fazia
tanto a memória do Firebird bater picos de 200MB pra gerar uma turma e não
liberar memória, quanto a memória utilizada pelo sistema subir e não liberar
também, ficando acima de 50MB pra uma turma.

Após os ajustes, a memória do FB para em 11,9MB.. De vez em quando sobe pra
25MB mas logo volta pra 11... e a memória utilizada pelo sistema também
ficou bem abaixo do que estava antes!

Obrigado pelas dicas!
Att.

Wesley Oliveira
Programador de Sistemas de Informação
RG System Informática
Fone:     +55 (27)  3727-1127
Celular:  +55 (27) 99606-0038

-----Mensagem original-----
De: lista [mailto:lista-bounces em firebase.com.br] Em nome de W O
Enviada em: quarta-feira, 4 de dezembro de 2013 23:33
Para: FireBase
Assunto: Re: [firebase-br] Consumo de memória muito Alto (Não libera)

¿Todos tus SELECTs finalizan con un COMMIT?

Si no es así, podrías continuar teniendo transacciones abiertas las cuales
por supuesto consumen memoria.

Saludos.

Walter.




2013/12/4 Wesley Oliveira <wesley em rgsystem.com.br>

> Olá pessoal!
>
>
>
> Correndo o risco de parecer bobo, mas uma questão está me perturbando 
> essa
> semana:
>
>
>
> Nosso sistema é baseado num Servidor DataSnap com Firebird 2.5
SuperServer.
>
> Ao gerar os boletins dos alunos de uma turma, por exemplo, o sistema 
> dispara várias funções entre servidor/banco de dados. Algumas stored 
> procedures são executadas, tabelas temporárias são alimentadas e 
> consultadas pra depois serem esvaziadas e por aí vai. Tudo comandado 
> pelo servidor da aplicação.
>
>
>
> Ao iniciar o processo, o FB está consumindo 22MB de memória e, para 
> uma turma de 30 alunos por exemplo, ao final da execução, o consumo 
> está beirando os 250MB!
>
> Sim, são rotinas pesadas, vários registros pra cada aluno em diversas 
> tabelas, SUMS, COUNTS, tem de tudo nessa rotina...
>
>
>
> Aí eu penso: Quando acabar, toda essa memória será liberada, certo?
> Errado... só libera quando encerra o servidor do sistema.... E nesse 
> fim de ano, alguns clientes estão gerando os boletins de TODAS as 
> turmas várias vezes por dia... Imagina o tanto que isso tá consumindo 
> dos pobres servidores, certo?
>
>
>
> Então eu pergunto: Por que isso acontece?
>
>
>
> Eu utilizo para as consultas ao BD o TDBXCommand com TDBXReader do 
> Delphi e, sempre que um command ou um reader é criado, é destruído ao 
> final da “participação” dele na rotina. Já dei Free, FreeAndNil e nada 
> libera a memória...
>
>
>
> Alguma boa alma poderia me dar alguma dica?
>
> Wesley Oliveira
> Programador de Sistemas de Informação
>
> RG System Informática
> Fone:     +55 (27) 3727-1127
> Celular:  +55 (27) 99606-0038
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br 
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br Para
saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista