[firebase-br] buffer size x DefaultDbCachePages

Maglan Cristiano Diemer maglan em univates.br
Qua Out 27 12:53:48 -03 2004


Ola pessoal,

Minha primeira participação na lista.
Duvida em relação ao ajuste de desempenho.

Sobre o cache do banco (do arquivo GDB) e
o parametro de configuração do servidor
"DefaultDbCachePages".

Segundo o proprio arquivo de configuração
o parametro DefaultDbCachePages diz o seguinte:

# Number of cached database pages
#
# This sets the number of pages from any one database that can be held
# in cache at once. If you increase this value, the engine will
# allocate more pages to the cache for every database. By default, the
# SuperServer allocates 2048 pages for each database and the classic
# allocates 75 pages per client connection per database.

Claro que a quantidade de paginas deve
ser multiplicada pelo tamanho da pagina;
no meu caso 4096 bytes.

Portanto, o servidor irá alocar a memoria cache para
cada banco que estiver conectado conforme o
valor definido em DefaultDbCachePages.

Até ai, tudo bem... Mas e o valor do cache do arquivo GDB?
Aquele que podemos definir por

gfix -buffers <tamanho> arquivo.gdb

O principio é o mesmo do parametro DefaultDbCachePages ?
É a quantidade de memória cache que o servidor irá
alocar para este GDB ? Independente do número de cliente ?

Se o DefaultDbCachePages for maior do que o cache do arquivo GDB?

Qual o valor que o servidor irá alocar?

O parametro DefaultDbCachePages é o valor total de cache do
servidor ou o total para cada GDB conectado neste servidor ?

Por exemplo, se eu tenho dois GDBS (A e B) cada um com um
cache do arquivo definido em 1024, pelo comando.

 > gfix -buffers 1024 A.GDB
 > gfix -buffers 1024 B.GDB

E o parametro DefaultDbCachePages é definido em 65536.

Supondo que o page size dos banco seja 4096 qual é
a memória que o servidor irá alocar para cache ?

65536 * 4096 = 256 MB ?

ou seria
1024 * 4096 = 256 KB ?

Essa quantidade de memoria é por GDB ou por conexao ?
Ou seja, se tenho dois clientes tenho duas conexoes ?

Quanto de memoria cache o banco ira alocar?


PS.: Há muito tempo li em algum lugar (se não estiver enganado)
que o servidor aloca a quantidade de cache do GDB para cada
conexão.. Ou seja, no meu exemplo seria 256 KB para cada cliente?

A explicacao do arquivo de configuracao diz que o DefaultDBCachePages
irá alocar a quantidade de memoria por banco (no SuperServer) e
por banco para cada cliente (no Classic). Isso realmente está certo ?

Maglan





Mais detalhes sobre a lista de discussão lista