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

Carlos H. Cantu listas em warmboot.com.br
Sex Dez 6 10:33:47 -03 2013


Pelo que sei, o FIBPlus permite vc definir uma transação para "browse"
e outra pra manipulação de dados (inserts,updates,etc). A do "browse"
vc pode definir como ReadCommited+ReadOnly, fazendo com que não
bloqueie a coleta de lixo.

[]s
Carlos H. Cantu
www.FireBase.com.br - www.firebirdnews.org
www.warmboot.com.br - blog.firebase.com.br

FG> Eu uso uma conexão persistente com o FIBPlus. Meu sistema ainda é Cliente -
FG> Servidor e não com o conceito de provider.
FG> Então essa conexão é ativa o tempo todo e ela tem um Transaction ligado a
FG> ela o tempo todo.

FG> Quando faço consultas, não dou um commit. Senão eu mato essa conexão
FG> persistente.
FG> Eu faço um commitretaining.

FG> O "Dataset" eu dou close, free e nil, assim percebi que libero memória
FG> "local" do aplicativo.
FG> Mas sem dar o commit realmente estou com medo de não estar resolvendo no
FG> servidor o consumo de memória e transações do Firebird.

FG> Alguém poderia me dar umas dicas ?

FG> Obrigado

FG> Frederico


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

>> As consultas feitas pelo nosso servidor usa um TSQLQuery com
>> DataSetProvider
>> pra retornar pro cliente os registros.
>>
>> O componente de conexão é um TDBExpress que herda de TSQLConnection e só
>> tem
>> algumas coisinhas a mais que não faz diferença pra isso não.
>>
>> Antes de iniciar a consulta, eu dou um StartTransaction e no final um
>> Conexao.Commit.
>> O DataSetProvider e a TSQLQuery são destruídos com FreeAndNil.
>>
>> 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 Frederico
>> Godoi
>> Enviada em: quinta-feira, 5 de dezembro de 2013 17:13
>> Para: FireBase
>> Assunto: Re: [firebase-br] RES: Consumo de memória muito Alto (Não libera)
>>
>> Como você fez pra liberar as Queries?
>>
>>
>>
>>
>> 2013/12/5 Wesley Oliveira <wesley em rgsystem.com.br>
>>
>> > 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
>> >
>> >
>> > ______________________________________________
>> > 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
>> >
>>
>>
>>
>> --
>> Frederico Godoi
>> ______________________________________________
>> 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