O cliente pode entrar em contato relatando que o acesso ou o uso do sistema pode estar lento.
Inúmeras são as causas que podem acarretar a lenditão do sistema mas existe algumas configurações e procedimentos que podem ser feitos para obter melhor performance do Firebird.
Antes de fazer qualquer configuração no Firebird certifique-se que os Requisitos Mínimos estejam de acordo com as recomendações.
O Firebird suporta estes três tipos de instalação. Recomenda-se usar o tipo de instalação Superserver para as nossas soluções que é a opção padrão de instalação do Firebird.
No Superserver um único processo (fbserver) escuta a porta Firebird e serve todas as conexões, usando threads para lidar com as solicitações.
Na pasta de instalação do Firebird C:\Program Files\Firebird\Firebird_2_5
no Windows se encontra o arquivo firebird.conf
, e dentro dele há várias configurações com suas explicações. Serão listadas algumas configurações que julgamos importantes que poderão ser alteradas para melhor aproveitamento do que o Firebird pode oferecer.
Antes de realizar qualquer modificação no arquivo firebird.conf
é recomendável que seja feita uma cópia deste arquivo pois caso após os testes não houver melhoras, as configurações padrões poderão ser restabelecidas.
O Firebird Superserver usam um único processo e aloca por padrão um cache compartilhado de 2048 páginas para todas as conexões com um banco de dados por padrão. Ao aumentar os valores de DefaultDbCachePages o Firebird fará menos acesso ao disco para buscar informações causando uma melhora do desempenho das pesquisas.
Para modificar esta configuração localize a propriedade DefaultDbCachePages no arquivo firebird.conf
e modifique os valores em função da memória do servidor de acordo com a tabela:
Memória do Servidor | Ajuste |
---|---|
4 GB | DefaultDbCachePages = 4096 |
8 GB | DefaultDbCachePages = 8192 |
16 GB | DefaultDbCachePages = 16384 |
Após modificar estas configurações reinicie o Firebird e realize um backup/restore do banco de dados modificando PAGE_SIZE para o mesmo DefaultDbCachePages.
Quando um arquivo é gravado no disco, mesmo tendo 1 único byte, o disco aloca um espaço mínimo chamado de cluster (o tamanho mais comum de 1 cluster é 4096 bytes). O Firebird grava os dados de acordo com a o PAGE_SIZE do banco de dados.
Para modificar o PAGE_SIZE realize o backup com o comando gbak.exe -g -b -z -l -v -user "sysdba" -password "masterkey" "ALIAS" "backup.fbk"
e o restore do banco modificando o tamanho da página em função do DefaultDbCachePages de acordo com a tabela:
DefaultDbCachePages | Comando de Restore |
---|---|
4096 | gbak.exe -p 4096 -r o -v -l -g -user "sysdba" -password "masterkey" "backup.fbk" "ALIAS" |
8192 | gbak.exe -p 8192 -r o -v -l -g -user "sysdba" -password "masterkey" "backup.fbk" "ALIAS" |
16384 | gbak.exe -p 16384 -r o -v -l -g -user "sysdba" -password "masterkey" "backup.fbk" "ALIAS" |
O tamanho da página (PAGE_SIZE) no Firebird 2.5 pode ser 4096, 8192 ou 16384.
O padrão do Superserver é usar apenas o primeiro processador lógico da máquina. Para fazer uso de todos os seus processadores esta configuração deverá ser alterada de acordo com o número de núcleos do Servidor.
Esta configuração surte efeito somente no Firebird Superserver em sistemas operacionais Windows.
Para modificar esta configuração localize a propriedade CpuAffinityMask no arquivo firebird.conf
e modifique os valores em função do número de núcleos do processador do Servidor de acordo com a tabela:
Núcleos do Servidor | Ajuste |
---|---|
1 Núcleo | CpuAffinityMask = 1 |
2 Núcleos | CpuAffinityMask = 3 |
3 Núcleos | CpuAffinityMask = 7 |
4 Núcleos | CpuAffinityMask = 15 |
6 Núcleos | CpuAffinityMask = 63 |
7 Núcleos | CpuAffinityMask = 127 |
8 Núcleos | CpuAffinityMask = 255 |
Para que as configurações funcionem não poderá ter a cerquilha (#) antes da mesma. Caso queira que o Firebird assuma novamente o valor padrão acrescente a cerquilha(#) no início da configuração.