[firebase-br] Diminuir o máximo o consumo de memoria.

Sandro Souza escovadordebits em gmail.com
Ter Jul 12 13:02:10 -03 2016


Bom dia/tarde/noite Júnior.

Meu nobre, não tenho muita experiência em ajustes no Firebird, mas acredito
que a solução desse caso serja o ajuste do tamanho do cache alocado pelo
Firebird para a base de dados que você está usando.
Basicamente, o cache é uma área de memória RAM, contendo N buffers, onde
cada buffer corresponde a uma cópia de página da base de dados.
Por exemplo, se eu criei uma base de dados com páginas de 16Kb, e o
Firebird está alocando um cache de 2048 buffers, significa que ele alocou
cerca de 2048 * 16Kb = 32768Kb = 32Kb de memória RAM para armazenar, no
máximo, as 2048 páginas/buffers em memória RAM para aumentar a performance.

Veja a seguinte página: http://firebirdsql.org/manual/gfix-buffers.html

Acredito que você deva ajustar a quantidade de buffers do cache da sua base
de dados para o mínimo, que segundo essa página, são 50 buffers/páginas.

Seria algo como: gfix -b 50 minha_base_de_dados.fdb
Ou usando um alias: gfix -b 50 alias_para_minha_base_de_dados

Outro detalhe, se você estiver utilizando a versão Classic, troque-a pela
SuperServer, pois na versão Classic, cada conexão levanta uma nova
instância do Firebird, que por sua vez, aloca outra cópia do cache. Já na
versão SuperServer, existe apenas uma instância do Firebird com uma única
cópia do cache para todas as conexões daquela base de dados.

Acredito que nosso grande amigo Cantu seja o mais indicado para dar uma luz
nessa questão.

Espero ter ajudado mais que atrapalhado. :D

Em 12 de julho de 2016 10:40, Junior <juniorvjl em gmail.com> escreveu:

> Senhores, bom dia.
>
> Inicialmente, precocemente falando seria ideal que o Firebird neste caso
> não utilizasse quase nada de memória RAM e sempre recorresse ao disco para
> tudo, porém não sei fazer isso =(.
>
> Explico:
>
> Tenho uma aplicação que faz o meio de campo com um bando de aplicativos.
> Exemplo real: um sistema escolar que poderá ter 1000 alunos ( por escola )
> ou mais.. e cada aluno poderá receber 20 mensagens por dia, contando o
> resultado de provas, agendas diversas e mensagens de outros alunos.
>
> Normalmente o firebird aguentaria o tipo de serviço porém ele está
> consumindo mais de memória RAM do que eu gostaria, coisa que em um ambiente
> Desktop estaria tranquilo porém por estar em um ambiente Cloud neste caso
> especifico pesa!.
> Hoje ele consome cerca de 800mb de memória RAM durante o dia e está em um
> servidor que tem 7GB de memória ram e custa 600reais/ mês.
>
> Isso hoje seria um custo alto para nós considerando só banco de dados daria
> cerca de R$100,00 arredondando para cada escola e preciso colocar pelo
> menos 20 escolas em um servidor como este para que o custo ficasse Ok.
>
> Eu entendo que o banco faz isso para desempenho, porém neste caso não me
> importo se a mensagem vai demorar alguns segundos a mais ou a menos.
>
> Por isso pergunto: O que vocês fariam? Como reduzir o uso de memória ao
> minimo possível.
>
> Abraço!
>
> *Valdeci Junior*
> *Cel:* *(11) 98639-9860*
> *Skype:* *juniorvjl*
> *GTalk:** juniorvjl em gmail.com <juniorvjl em gmail.com>*
> ______________________________________________
> 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://www.firebase.com.br/pesquisa_lista.html
>



Mais detalhes sobre a lista de discussão lista