[firebase-br] 100 CPU firebird 2.5 Classic

Luciano luciano em orgsystem.com.br
Qua Fev 23 09:24:11 -03 2011


Eduardo Jedliczka <edujed em ...> writes:

> 
> COPIE a saída do gstat -h <<banco_de_dados>> aqui para lista... assim
> teremos uma melhor noção do seu ambiente.
> 
> ==========================
> Eduardo Jedliczka
> Apucarana - Pr
> ==========================
> 
> Em 21 de fevereiro de 2011 14:11, Luciano <luciano em ...> escreveu:
> > Fabiano Moura <mctbrasil em ...> writes:
> >
> >>
> >> Ou a query abaixo, porém, para a query ser executada de forma correta, vc
> >> terá que estar com o banco atualizado para Firebird 2.5
> >>
> >> SELECT FIRST 10
> >>   STMT.MON$ATTACHMENT_ID,
> >> STMT.MON$SQL_TEXT,
> >> MEM.MON$MEMORY_USED
> >> FROM MON$MEMORY_USAGE MEM
> >> NATURAL JOIN MON$STATEMENTS STMT
> >> ORDER BY MEM.MON$MEMORY_USED DESC
> >>
> >> *Obrigado,*
> >> *
> >> *
> >> *
> >> *
> >>
> >>
> >
> > No final de semana coloquei com tamanho de página 8192, buffer = 128, e
> > desativei sweep, parecia que ia ficar perfeito, só que as vezes algum 
processo
> > fica 100%, pelo PID eu acabo com ele o sistema estabiliza. Nao acredito ser
> > indice pois os clientes que travão não estão fazendo nada que force o
> > processameto. Alguém sugere algo para teste ?
> >
> >
> >
> >
> > ______________________________________________
> > 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
> >
> 
> ______________________________________________
> 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
> 
> 

Olá,

Abaixo segue espeficicações do hardware e o header, mas com algumas conclusões;

Projeto: ERP
Tamanho BD:   2.8 G
Usuários: ~40
Conexões simultâneas:   ^50 (pois alguns abre o aplicativo novamente)

Servidor: Itautec
Processador:  biprocessado com um processador instalado,   XEON
Memoria: 2G
HD: SAS  15 rpm
Controladora com RAID 1 e 128 M cache

Sistema operacional: Fedora 14

Database header page information: 
        Flags                   0 
        Checksum                12345 
        Generation              43499 
        Page size               8192 
        ODS version             11.2 
        Oldest transaction      41847 
        Oldest active           41848 
        Oldest snapshot         41848 
        Next transaction        42589 
        Bumped transaction      1 
        Sequence number         0 
        Next attachment ID      986 
        Implementation ID       19 
        Shadow count            0 
        Page buffers            2048 
        Next header page        0 
        Database dialect        1 
        Creation date           Feb 19, 2011 7:20:23 
        Attributes              force write 
 
    Variable header data: 
        Sweep interval:         0 
        *END* 

Vale destacar que em projetos onde o tamanho do BD e maior e onde a performance 
é pré-requisto, sempre adotavamos a versão Classic, principalmente em linux, e 
sempre utilizei  e sempre funcionou muito bem. Com a intenção de melhorar 
performance e também utilizar os novos recursos, resolvi portar para 2.5, como 
até então sempre obteve melhores resulados, optei pela classic. Mas vale 
observar que durante esse processo, eu ajustei o necessário para 2.5 e instalei 
em um equipamento windows com a superserver para certificação que estava tudo 
pronto para entrar em produção, ficamos uma semana com estes testes. Quando os 
ajustes estavam feitos e tudo parecia OK,  troquei o linux do servidor para 
Fedora 14 e Firebird 2.5 Classic, ai começaram os problemas, conforme os 
usuários vão se conectando e usando o sistema, após 20 conexões e um tempo de 
uso, começa com um processo a consumir 100% da cpu, e influenciando o tempo das 
outras, até que tudo para, não consigo nem conectar mais no BD, isso é um relato 
do acontecido.  Como não há maneira de se trabalhar resolvi testar melhor a 
superserver, pois não ocorre esse problema. E percebi que ela está muito melhor 
em alguns aspectos, o servidor que estou usando tem 2 núcleos, e se eu faço uma 
solicitação de por exemplo um fetch em uma tabela relativamente grande em uma 
conexão e em outra eu fizer outro, no linux, sem nenhuma configuração de cfu 
affinity, ele executa no outro núcleo, e parece-me que bem. Mas resolvemos 
comprar outro servidor mais robusto, mas enquanto isso, resolvi  otimizar 
algumas rotinas no BD com novos os recursos da 2.5 e o desempenho melhorou e 
está sendo usado bem.  Mas o que eu queria era entender o porquê disso, pois 
nesse caso o FB conseguiu me atender, mas se fosse o caso de não conseguir ?, se 
mais alguém precisar do Classic ? 
Eu acredito que seja algo no firebird mesmo,  pois analisei os seguintes pontos

- Tamanho da pagina está 8192 (utilizava deve forma no 1.5)
- Buffers está 2048 (utilizava 10000 no 1.5)

Se fosse indice, rotina não otimizada, no 2.5 ficaria pior que no 1.5 ?, e ainda 
na superserver funcionaria e na classic não ? porque tenho a restartar tudo para 
voltar normal, sendo que somente demoria, mas não para tudo no 1.5. Analisei 
também na semana passada a versão da da GLIBC, que está a 2.12

Se alguém quiser comentar, ou debater







Mais detalhes sobre a lista de discussão lista