Pular para o conteúdo principal

Desvendando do Firebird 2.5 performance Servidor (não se trata de desenvolvimento)



Desvendando do Firebird 2.5


A principio, gostaria de deixar claro, Que a referencia dessa postagem foram tiradas do site da Firebase,  palestras do FDD, IBSurgeon e experiencias pro prias de consultoria


Perguntas



Qual o tamanho máximo de uma base o Firebird comporta?
R: Temos relatos de bases de dados com mais de 1TB

Quantas bases de dados Firebird posso ter em um único servidor?
R: Já presenciei um servidor com mais de 70 bases, sendo cada uma com mais de 500Mb.


Dicas

Nessa postagem vou passar alguns macetes para diminuir o travamento do serviço do FBServer e minimizar a lentidão de conexão entre servidor de Aplicação e servidor de banco de dados.

1º - Aplicação e Banco de dados devem estar em servidores/equipamentos diferentes. Caso estejam em um mesmo servidor, os recursos serão compartilhados, gerando lentidão em ambos (aplicação e banco de dados)

2º - O Servidor de Banco de dados não pode rodar junto com o serviço de AD e DNS. Ao rodar o Firebird no mesmo servidor de AD, ocasiona lentidão de escrita em disco e travamento do AD.

3º- Deve ser calculado a quantidade de banco de dados com a memoria e CPU do servidor de banco de dados. O Firebird 86x tem limitação de 2GB para memoria, caso seus bancos de dados ultrapassem essa porcentagem o consumo de memoria será incompatível, fazendo com que o serviço do Firebird congele.

4º- Se seu ambiente trabalha 24hs mantenha o sweep automático desativado. Quando sweep automatico está ativo, ele é executado ao atingir o limite de 20 mil transações. Se a base de dados estiver sendo utilizada no momento, o comando do sweep vai ficar em looping e não será executado, consumindo memoria do servidor.
Como desativar o sweep automático?
Segue linha de comando:


 gfix -h 0 "caminho da base.fdb" -user sysdba -password "senha"


5º- Por padrão o Firebir utiliza 2048Mb de cache. Quanto maior for configurado, mais rápido ele fica, e maior é a memoria consumida, o ideal é manter o meio termo. Em um servidor windows 32x com 4GB de memoria, 40 bases de 70Mb, configurei ele para 1024.
Como efetuar essa configuração?
Acesse a Pasta de programas, localize o Firebir. Dentro da pasta existe o documento Firebird.conf.
Obs. Faça sempre um backup antes de qualquer alteração.
Edite o arquivo Firebird.conf. Localize a linha:


 #DefaulDbcachePages = 2048

Tire o comentário e edite o tamanho indicado para seu ambiente. No meu caso setei para 1024.

 DefaulDbcachePages = 1024

Reinicie o Firebird.

6º- Mantenha uma politica de validação dos bancos de dados. Efetue periodicamente o processo de GFIX e Sweep em seus bancos de dados. Abaixo segue um script que uso em meus servidores a cada 15 dias.


SET ISC_USER=SYSDBA
SET ISC_PASSWORD= SENHA
gfix -v -full "Caminho da base"
gfix -mend -full -ig "Caminho da base"
GFIX -SHUT -FORCE 0 -user sysdba -password SENHA "Caminho da base"
GFIX -SWEEP -user sysdba -password SENHA Caminho da base
gbak -b -g -v -user sysdba -password SENHA "Caminho da base.FDB" "caminho do backup.GBK"
gbak -c -v -ig -g -user sysdba -password SENHA "Caminho do backup.GBK" Caminho da base_.FDB"



Após finalizar troco o banco atual para Base_old.FDB e a nova de BASE_.FDB para BASE.FDB


Qualquer duvida,  "https://www.firebase.com.br/" não tem ninguém melhor para ajudar em qualquer tema de Firebird do que o Cantu.



Veja Também:

CONECTANDO EM UM BANCO DE DADOS COM FIREBIRD COM ISQL