[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