Esta página foi traduzida por máquina. Leia o original em inglês. English

Biblioteca IBSurgeon

Lista rápida de verificação de desempenho para banco de dados Firebird

Windows

  1. Defina o plano de energia para alto desempenho (+20% no Windows Server 2016+)?

  2. Defina a Política de Cache de Gravação para unidades como Habilitar Cache de Gravação

  3. No caso de RAID, verifique se o driver moderno está instalado e se o RAID está configurado corretamente.

Linux

  1. O Max Open Files está definido como 49999? Verifique com cat /proc/$(pgrep firebird)/limits, o padrão é 4096, aumente se necessário: defina-o no arquivo de serviço do Firebird como LimitNOFILE=49999

  2. Verifique a contagem de VMA cat /proc/sys/vm/max_map_count, o padrão é 64K, deve ser definido como 250K: adicione ao /etc/sysctl.conf a linha vm.max_map_count=250000

Configuração do Firebird (recomendações apenas para Firebird 3)

  1. Certifique-se de não usar o DefaultDBCacheBuffers padrão, eles são muito baixos (256 e 8K)! Defina 1024 para SuperClassic e 100K para SuperServer. Não use Classic no Firebird 3, ele é lento.

  2. Certifique-se de que o DefaultDBCacheBuffers não seja substituído no cabeçalho do banco de dados: verifique com gstat -h database -> Page Buffers, deve ser 0. Defina-o como 0 com gfix -buffers 0.

  3. Defina FileSystemCacheThreshold =100M para usar o cache de arquivos do SO

  4. Para SuperServer, aloque para DefaultDBCacheBuffers menos de 30% da RAM. Se você tiver muitos bancos de dados, conte a memória para todos eles e use databases.conf para configurá-los separadamente. Verifique o número total de conexões e bancos de dados com o comando:

fbsvcmgr.exe localhost:service_mgr user sysdba password masterkey info_svr_db_info

  1. Para SuperServer e SuperClassic, defina TempCacheLimit como 25% da RAM, para Classic - 64M.

  2. Defina LockMemSize=30M, é um bom valor inicial, depois monitore o crescimento da tabela de locks com o comando fblockprint -d databasename e aumente LockMemSize se necessário

  3. Defina LockHashSlots=20011, é um bom valor inicial, monitore Hash Lengths no lockprint

Banco de dados

  1. Para bancos de dados > 50Gb, use o tamanho máximo de página: 16Kb (padrão 8Kb), para otimizar a leitura de IO e a profundidade dos índices. Defina-o durante a restauração com o switch “page”: gbak**-c -page 16384**

  2. Não use o flag no_reserve para bancos de dados não somente leitura. Remova-o com **gfix -**use reserve

  3. Monitore a diferença entre os marcadores de transações (OIT, OST, OAT, Next) do gstat -h.

  4. Grande (OST-OIT) significa que o banco de dados provavelmente contém muitas versões de lixo e requer sweep. Agende um sweep explícito para o período noturno com gfix -sweep

  5. Grande (Next-OAT) significa uma transação gravável ativa longa que bloqueia a coleta de lixo. Verifique as tabelas MON$ para ver qual aplicativo mantém a transação aberta e corrija-o.

Teste de 5 minutos para estimar o desempenho do Firebird

Use o script open-source INSERT-UPDATE_DELETE: www.ib-aid.com/dbtestAtualmente, o servidor testado mais rápido mostrou 18140 registros inseridos por segundo, qual será o seu resultado?

Como melhorar o desempenho do Firebird além deste ajuste simples?

Experimente o serviço de otimização Firebird da IBSurgeon www.ib-aid.com/perf: sabemos como fazer seu Firebird trabalhar mais rápido.