[firebase-br] Firebird no FreeBSD consumindo muita memoria

Jéter Rabelo - GMail jeter.rabelo em gmail.com
Ter Dez 24 09:11:12 -03 2013


Bom dia.

É o seguinte, depois de ficar ontem, dia 23/12, das 07:00 as 23:00 
tentando achar o "problema", descobri a "causa".

Vamos lá.

O FreeBSD tem uma maneira própria de gerenciamento de memória, diferente 
de Linux/Windows.

A cada consulta, ele meio que "reserva" a memória utilizada nela, 
colocando a mesma em Memória inativa.

Quando se olha a memória Inativa, ele é  quase que uma memória livre, 
porém na prática não é.

Então, depois de ler um caminhão de artigos, fóruns e etc, cheguei na 
seguinte conclusão.

- A Velocidade do Firebird no FreeBSD é FENOMENAL.
- A resposta de consultas são absurdamente rápidas, chega a ser 
inacreditável.
- Numa tabela de LOG que possui mais de 10.000.000 de registros, um 
select de testes com um where não indexado, leu a tabela em menos de 5 
segundos.
   - Num segundo select então, aí é coisa de louco.
- Mas, tudo isso tem um preço: No select da tabela de 10.000.00 de 
registros, a memória utilizada nele fica como inativa. Mesmo se fechar a 
conexão, fechar o programa e tudo, nada de liberar a memoria.
- Se você fizer um sweep, tchau memória, ela fica como inativa
- Backup? Mesma coisa

Então, resumindo, para ter um servidor com FreeBSD rodando, dependendo 
do tamanho das base de dados, deve-se ter uma "caminhão" de memória.

Pois, por mais que ele "utilize" a memória inativa, chega uma hora que a 
memoria Free chega a < 200mb e aí começam os problemas: Lock Manager, 
não aceita novas conexões e etc.

Solução? Reboot no server.

Não achei nenhuma rotina para dar uma "limpada" nessa memória.

O sistema operacional da Apple que tem como base o BSD, foi implementado 
um comando chamado Purge, que não existe no FreeBSD. Esse comando 
"limpa" a memória.

Quanto ao Firebird.conf, eu havia  modificado alguma coisa, voltei tudo 
ao default. Mas o problema não estava aqui.

Como no meu caso tenho duas bases, uma de 51gb e outra de 121gb, e não 
vai dar tempo de comprar 32gb de ram. Por isso, vou aproveitar o feriado 
e instalar o Debian.

Bom, fica aí a minha experiência.

É uma pena, pois gostaria de ficar com o FreeBSD, mas no momento tenho 
que manter em suspenso a utilização do mesmo. Pretendo voltar no futuro, 
pois a experiência foi maravilhosa.

Mas, só volto com um servidor de no mínimo >=32gb ram. (No caso desse 
cliente em específico)

Abraços, boas festas e um Feliz Ano Novo.

---
Jéter Rabelo Ferreira

Obs: A resposta no fórum FreeBSD Brasil do gerenciamento de memória do 
FreeBSD:
https://www.mail-archive.com/fugspbr-fugspbr.org@fugspbr.org/msg01434.html

Em 23/12/2013 22:43, Frederico Godoi escreveu:
> Você alterou algum parâmetro do Firebird.conf ?
>
>
> Em segunda-feira, 23 de dezembro de 2013, Jéter Rabelo - GMail escreveu:
>
>> Boa tarde.
>>
>> Coloquei em produção um servidor FreeBSD com firebird no meu cliente.
>>
>> Mas estou tendo um problema de memória. O Firebird está consumindo memoria.
>>
>> Quando se olha as transações, todas estão  coerentes:
>> Database header page information:
>>          Flags                   0
>>          Checksum                12345
>>          Generation              128716
>>          Page size               8192
>>          ODS version             11.2
>>          Oldest transaction      121599
>>          Oldest active           121600
>>          Oldest snapshot         121600
>>          Next transaction        121601
>>          Bumped transaction      1
>>          Sequence number         0
>>          Next attachment ID      7098
>>          Implementation ID       25
>>          Shadow count            0
>>          Page buffers            75
>>          Next header page        0
>>          Database dialect        3
>>          Creation date           Dec 21, 2013 20:27:02
>>          Attributes              force write
>>
>>      Variable header data:
>>          Sweep interval:         0
>>          *END*
>>
>> As confiturações de Buffers e etc estão como padrão do Super Classic Server
>>
>> Status da memoria do FreeBSD
>> last pid:  1551;  load averages:  0.27,  0.22,  0.18     up 0+04:24:17
>>   12:27:06
>> 25 processes:  1 running, 24 sleeping
>> CPU:  3.0% user,  0.0% nice,  0.7% system,  0.1% interrupt, 96.3% idle
>> Mem: 429M Active, 6067M Inact, 993M Wired, 215M Cache, 826M Buf, 167M Free
>> Swap: 4096M Total, 760K Used, 4095M Free
>>
>>
>> Alguém para dar uma luz?
>>
>> Atenciosamente
>> --
>> Jeter-Jerasoft
>> ______________________
>> Jéter Rabelo Ferreira
>> <http://www.jerasoft.com.br>
>>
>> http://www.jerasoft.com.br
>> Skype: jeter.rabelo
>>
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>





Mais detalhes sobre a lista de discussão lista