[firebase-br] Page Size X DefaultDbCachePages

Carlos H. Cantu (TeamFB) listas em warmboot.com.br
Seg Dez 18 12:02:30 -03 2006


>1) Pelo q eu entendi o Page Size do banco deve ser baseado no tamanho
>dos clusters do meu HD, portanto ele sendo de 4KB (SCSI) devo
>utilizar de preferência os mesmos 4096 bytes para otimizar a leitura
>e gravação??? Se eu utilizar 8192 por exemplo, eu teria perda de desempenho?

Infelizmente não existe uma fórmula para se calcular o melhor page
size, pois são muitas variáveis envolvidas. O que vc disse é o que se
costuma usar como "padrão", mas o ideal é vc fazer testes com
diferentes page sizes até descobrir o qual é melhor para você.

>2) Eu posso configurar o número de páginas carregadas em cache no
>próprio banco (pelo gfix) ou utilizar a configuração do servidor pelo
>arquivo firebird.conf (DefaultDbCachePages)? caso o cache do banco
>estiver diferente de 0 (zero) ele utiliza a configuração do banco,
>caso estiver zerada utiliza a configuração do DefaultDbCachePages???

Sim.

>3) Na configuração do número de páginas carregadas em cache deve ser
>levado em conta a quantidade de memória RAM? No meu caso, o servidor
>tem 1GB de memória RAM? qual o limite recomendável para eu configurar
>o DefaultDbCachePages??? Se eu utilizar somente um banco de dados
>neste servidor? em caso de mais de um banco? devo somar a
>quantidadede memória utilizada pelos 2 bancos?

Com certeza vc deve levar em conta a RAM do servidor, pois se alocar
muito cache para o Firebird, o Sistemas Operacional pode começar a
fazer swap e tudo ficar lento. No caso do servidor SuperServer, o
cache é alocado por banco, no classic, cada conexão tem seu próprio
cache.

>4) Se o cálculo da memória requerida no FB SuperServer é Page Size *
>DefaultDbCachePages * Número de Banco de Dados? como calculo o número
>ideal de DefaultDbCachePages? devo levar em conta o tamanho do
>arquivo do banco? no livro "Dominando o Firebird" da Helen Borrie tem
>um tópico chamado: "Estimando os Requisitos de Tamanho", onde tem uma
>fórmula: DBCachePages = r * tamanho (do arquivo do banco), sendo que
>o "r" é o fator de redução q tem um valor entre 0 e 1. Para calcular
>o fator de redução, devo dividir tamanho do arquivo do banco de dados
>menos 1 byte pelo tamanho da página. No meu caso o banco de dados tem
>15 MB e o tamanho da página é 8 KB, (15728640 - 1) / 8192 = 1919,99
>bytes ou 0,001831 MB * 15 MB = 0,02746581 MB ou 8799,99 bytes? isto
>está correto? neste meu caso eu acabaria requerendo 28799,99 x 8192
>x1 = 224,99 MB para cada banco conectado? isso para um banco de
>somente 15 MB? Isto procede?

Eu nunca utilizei fórmulas pra acertar o cache. Costumo levar em
consideração somente a quantidade de memória livre no servidor, o
número de bancos ativos e o tamanho das páginas.

Lembre-se também que já existe o cache de disco do sistema
operacional, então tornar o cache do Firebird muito grande talvez não
dê um aumento de desempenho significativo.

[]s
Carlos H. Cantu
www.firebase.com.br





Mais detalhes sobre a lista de discussão lista