[firebase-br] Duvida de Administração de Ambiente

Gladiston Santana gladiston em vidy.com.br
Seg Nov 27 11:06:23 -03 2017


Nobre colega,

Quando páginas de dados são resgatados do disco, ficam armazenadas em
buffers de memória, a medida que enchem, os dados mais velhos saem e os
novos entram.
Quando existe um servidor dedicado de banco de dados, geralmente toda a
memória disponível é usada para buffers, porque memória não usada significa
memória desperdiçada.
Vai um momento cultural aqui, buffers é quando uma informação é transferida
de um local para outro antes de chegar ao seu destino final. O termo cache
vem da interface, então tá correto dizer que um disco tem 8MB de cache
porque o app - qualquer que seja ele - nunca saberá se os dados estão vindo
do disco físico ou desse tipo especial de memória que a controladora tem.
Se o banco de dados tá usando cache ele nunca saberá porque isso é coisa da
controladora, mas ele sempre sabe quando tá usando buffers. Usamos o termo
"cache de disco" porque o SO aprendeu a fazer essa operação por software e
aprendeu tão bem que é melhor ter mais memória no computador do que comprar
controladoras com mais "cache". Na pratica, falar cache ou buffer dá no
mesmo, mas existe diferença, ok?

Quando o banco de dados faz sua primeira consulta, primeiro observa se os
dados requisitados não estariam nos buffers, assim economiza operações de
I/O, quando não tá lá, então traz do disco(ou cache) para os buffers dele e
na próxima consulta os dados estarão lá e a consulta será bem mais rapida
do que foi da primeira vez.

O Firebird tem configuração para determinar quanto de buffers será usado ou
se ele deverá realmente usá-la, aí você se pergunta, como assim não usar
buffers? Sim, isso as vezes ocorre porque há sistemas operacionais que
possuem um cache de disco tão eficiente que se houver outros apps fazendo
operações similares, haverá menos memória para ambos e uma possivel
degradação de performance. Em sistema Linux, o sistema de método de "cache"
de disco é extremamente eficiente a ponto de newbies reclamarem que o
sistema tá quase sempre usando 100% da memória e fazendo reclamação sem
sentido - para estes, talvez seja mais vantajoso ter memória ociosa.

[]´s

Em 25 de novembro de 2017 11:29, Marcelo Geyer <estanisgeyer em gmail.com>
escreveu:

> É válido dizer q se eu tiver um aplicativo não persistente, ou seja, que
> abre conexão e fecha assim que as operações são realizadas, o Firebird fará
> a liberação do cache?
>
> Em 24 de nov de 2017 17:24, "Carlos H. Cantu" <listas em warmboot.com.br>
> escreveu:
>
> > cgc> O simples fato de dar stop/start no serviço do Firebird provocaria a
> > perda
> > cgc> do cache?
> >
> > cgc> Renato
> >
> > O cache do Firebird é liberado assim que a ultima conexão com a base
> > de dados é encerrada. Obviamente, parar o serviço do Firebird tb
> > "some" com o cache dele.
> >
> > Já o cache de disco do sistema operacional é controlado pelo próprio
> > sistema operacional, que aloca/libera sua memória de acordo com suas
> > próprias regras.
> >
> > []s
> > Carlos H. Cantu
>



Mais detalhes sobre a lista de discussão lista