Verifique as configurações de desempenho do sistema operacional no servidor Firebird

Windows

Mude seu plano de energia para "Alto Desempenho" (ou Ultimate, se você tiver). Isso pode aumentar o desempenho da CPU em até 20%, porque faz com que os núcleos da CPU funcionem mais rápido com maior consumo de energia. Para alterar seu plano de energia, vá para as configurações de energia do Windows ("Opções de energia") e escolha "Alto desempenho" (em vez de "Equilibrado", que é o usual). Veja na imagem abaixo que o WIndows geralmente traz pré-configurado o plano equilibrado, mude para um dos dois citados acima.

Esta opção é absolutamente necessária para o Firebird com arquitetura clássica, e será útil para outras arquiteturas também, especialmente para os bancos de dados Firebird com alto número de conexões.

Para ver o efeito, é necessário reiniciar todas as instâncias do Firebird, veja que por padrão essa opção vem desligada.

Se você não tiver RAID ou SAN ou outro dispositivo de armazenamento complexo, verifique se o Windows habilitou o cache de gravação. Clique com o botão direito do mouse no disco, selecione Propriedades e guia Políticas. A opção "Ativar cache de gravação no dispositivo" deve ser habilitada.

Não há necessidade de reiniciar o Windows, até que ele será explicitamente necessário.

Se você tiver RAID ou SAN - precisa configurá-lo corretamente. Entre em contato com o fabricante para isso.

Linux

A instância Firebird com alto número de conexões exigirá aumentar o número de arquivos abertos (identificadores).
Verifique o valor de MaxOpenFile com o seguinte comando:
cat /proc/firebird_process_id/limites
O padrão é 4096, aumente-o se necessário para 49999.

Defini-lo no arquivo de serviço Firebird LimitNOFILE=49999

Normalmente, os arquivos de serviço do Firebird estão localizados em /usr/lib/systemd/system/firebird-superserver.service ou em/usr/lib/systemd/system/firebird

Instâncias Firebird com alto número de conexões, com arquiteturas SuperServer e SuperClassic podem exigir muitas áreas de memória virtual (VMA).

Verifique a contagem do VMA com o seguinte comando:

cat /proc/sys/vm/max_map_count

O padrão é 64K, ele deve ser definido como 250K.

Para aumentá-lo, adicione a seguinte linha ao arquivo /etc/sysctl.conf

vm.max_map_count=262144

Para aplicar, reinicialize o servidor ou, para aplicar imediatamente, faça

sysctl -w vm.max_map_count=262144

Por favor, note que, para tornar esta configuração permanente, precisa mudar em sysctl.conf!

      1. Verifique se você tem espaço suficiente em /tmp. Recomendamos ter pelo menos 50Gb. O Firebird armazena arquivos temporários em /tmp e /tmp/firebird, e eles podem ser bastante grandes. Se você usar o Firebird HQbird com a opção BlobTempSpace, haverá arquivos temporários de Blob armazenados.
      2. Uptime. Reinicialize o servidor Linux ou a VM pelo menos uma vez a cada 180 dias.

Crie o firebird.conf customizado para o seu servidor Firebird

Qual é o problema com a configuração padrão?

Você está usando o arquivo firebird.conf padrão que vem com o Firebird regular (Vanilla), instalado a partir do instalador padrão ou repositório Linux? Se sim, temos algumas más notícias para você. Seu arquivo firebird.conf não é o melhor para seu banco de dados Firebird.

O arquivo firebird.conf padrão é feito para funcionar no menor e mais simples hardware ou VM. Mas não é disso que a maioria dos servidores de produção precisa.

Crie a configuração ideal para o seu servidor Firebird

Você deseja tornar seus arquivos firebird.conf (e databases.conf) melhores para seu hardware ou VM? Essa é uma ideia inteligente. Existe um serviço gratuito que pode ajudá-lo com isso. Chama-se "Configuration Calculator for Firebird" e pode configurá-lo usando as instruções na seguinte página: Otimização do Banco de Dados Firebird

Coisa muito importante

Certifique-se de que você não tem valor para a linha de buffers de página na página de cabeçalho do seu banco de dados!

você pode verificar usando o GSTAT dessa forma

gstat -h /caminho/para/database.fdb

e corrigir usando o GFIX 

gfix -buff 0 /path/to/database.fdb -user SYSDBA -pass masterkey