quinta-feira, 22 de janeiro de 2015

Como melhorar a performace do FireBird


                 Para melhorar o desempenho do FireBird é preciso ajusta algumas configurações.
                 No servidor, localize o arquivo firebird.conf, ele fica na pasta onde foi instalado o FireBird (Ex.: C:\Program Files\Firebird\2.5\). Dependendo da configuração do servidor a configuração do FireBird pode mudar.
                 A baixo seguem alguma configurações que podem ser usadas para melhorar o desempenho.
  • Configuração para servidor com processador dual-core, e pelo menos 4GB memória:
    DefaultDbCachePages = 4096
    FileSystemCacheThreshold = 67108864
    FileSystemCacheSize = 70
    CpuAffinityMask = 3
  • Configuração para servidor com processador dual-core, e pelo menos 8GB memória:
    DefaultDbCachePages = 8192
    FileSystemCacheThreshold = 134217728
    FileSystemCacheSize = 70
    CpuAffinityMask = 3
  • Configuração para servidor com processador quad-core, e acima de 8GB memória:
    DefaultDbCachePages = 16384
    FileSystemCacheThreshold = 268435456
    FileSystemCacheSize = 80
    CpuAffinityMask = 15
    
  • Configuração para servidor com processador ocata-core, e acima de 8GB memória:
    DefaultDbCachePages = 16384
    FileSystemCacheThreshold = 268435456
    FileSystemCacheSize = 80
    CpuAffinityMask = 255

          Para complementar o ideal é fazer um Backup/Restore da base de dados com o parâmetro Page Size igual a configuração usada no parâmetro DefaultDbCachePages, definido no firebird.conf.

 

15 comentários:

  1. Bom dia, Ricardo

    Em alguns servidores tivemos melhoras significativas, mas não em todos os casos. Não conseguimos identificar qual o problema que nem todos os casos temos os mesmo resultado.

    ResponderExcluir
    Respostas
    1. Legal, eu fiz essas configurações mas o pessoal do ERP são muito lerdos.
      tentei levar o banco para o Linux ( Não damos suporte com o banco em linux). Preguiça

      Segunda etapa vi que muitos tem problemas com 2008 R2, migrei para 2012 R2, queria colocar uma partição somente para o banco para nao ficar no C: junto com o Windows. - ( Nosso sistema só usa por padrão o firebird instalado no c: ; - Preguiça.

      Bom então só me restou colocar um SSD e ajustar essas confs. mas ficou +- ainda.

      mas valeu pela resposta.

      Excluir
  2. Amigao, bom dia!
    Estou estudando algumas alternativas para melhorar o desempenho dos nossos sistemas aqui na empresa, creio eu que essa sua dica ira me ajudar bastante, só fiquei com uma duvida, a minha instalação padrao do firebird esta com todas as linhas comentadas no firebird.conf nessa caso você saberia me informar quais os parametros de configuração que vem por padrão?

    ResponderExcluir
    Respostas
    1. Opa até onde eu vi não sou DBA, mas ele vem com padrão de 1 core e 1 gb de memória posso estar errado ai nosso amigo ai já me corrige.

      já tive esse problema em linux também caso um de vcs tenham esse problema.

      http://anibolete.blogspot.com.br/2011/06/conexoes-firebird-limitada.html

      Excluir
    2. olá. vc teria alguma configuracao otimizada ali do firebirs para um processador Xeon Silver 4114 2.2ghz de 10 núcleos e 20 threads, com 32gb de memoria ram?

      aqui no meu firebird lah no final do arquivo diz assim:

      DefaultDbCachePages = 4884
      TempBlockSize = 1048576
      TempCacheLimit = 320121514
      LockMemSize = 9437184

      apenas isso acima.

      Excluir
    3. Aqui vc vai encontrar configurações já testadas: https://ib-aid.com/br/optimized-firebird-configuration/

      Porém, importante salientar que não são padrões.

      Excluir
  3. Bom dia, Leandro Soares,
    Eu costumo copiar e colar no final do arquivo as configurações conforme estão acima descritas.

    ResponderExcluir
  4. Bom dia Ricardo,

    Muito bom o post o mesmo resolveu em alguns clientes em outros descobri que modo de RAID 1 deixava lento banco que trabalho, deste modo fiz dois procedimento, em um cliente alteramos o HD para SSD e outra situação o modo para RAID 0.

    Também pegue um caso que Firebird entrou em conflito com AD (Active Directory) do windows, onde ambos estavam juntos.

    Espero que estes exemplos ajude os colegas.

    Abraço.

    ResponderExcluir
  5. Olá Ricardo,
    Ótima iniciativa que pode ajudar muita gente. Parabéns!
    Porém sugiro corrigir o cpuaffinitymask = 15 para Processadores quadcore.

    Fonte: https://firebirdsql.org/rlsnotesh/config-fb-conf.html

    ResponderExcluir
    Respostas
    1. Oi Isaac,
      Realmente você está certo, já fiz o ajuste

      Obrigado.

      Excluir
    2. olá. vc teria alguma configuracao otimizada ali do firebirs para um processador Xeon Silver 4114 2.2ghz de 10 núcleos e 20 threads, com 32gb de memoria ram?

      Excluir
    3. aqui no meu firebird lah no final do arquivo diz assim:

      DefaultDbCachePages = 4884
      TempBlockSize = 1048576
      TempCacheLimit = 320121514
      LockMemSize = 9437184

      apenas isso acima.

      Excluir
    4. Aqui vc vai encontrar configurações já testadas: https://ib-aid.com/br/optimized-firebird-configuration/

      Porém, importante salientar que não são padrões.

      Excluir
  6. Bom dia, tinha a versao do firebird 2.5 e migrei para 3.04 porem estou tendo varios erro, gostaria porque ele esta cortando algumas conexao de alguns usuarios, nao sei se ele tem mais segurança, e tem limite de conexao ou tennho como alterar isso ? preciso de um help

    ResponderExcluir