[firebase-br] Sevidor Firebird
Eduardo Bahiense
eduardo em icontroller.com.br
Sáb Set 13 02:02:21 -03 2008
Olha, para ilustrar um pouco esse papo teórico, que acho muitíssimo
interessante, vou relatar nosso ambiente que, pessoalmente, não canso de
me admirar com a estabilidade e competência do FB.
OS: Debian
Hard: AMD Athon X2 4000+ 2,1Ghz
2GB de memória RAM
1 disco de 80GB SATA
4mbps de link
FB 2.1 - forced writes ON
UP Time máximo conseguido: 500 dias sem reiniciar o equipamento ou o FB.
Reiniciações de hard foram por manutenção do hard e nunca por
instabilidade de S.O. ou SGBD
Protocolo de comunicação: http
Arquitetura: n Camadas
Usuários (não simultâneos) : 8500
5 processos fastcgi gerenciando 3 FDBs (8096) (3GB, 1GB, 300MB)
Até 15 instâncias do Classic com configurações standard do firebird.conf
350.000 requisições / dia (85% GET, 15% POST)
Tempo médio de resposta dos pedidos 70 milisegundos
Uso médio da CPU: 90% idle
Há dois meses tínhamos apenas 1GB de RAM nesse servidor, porém
detectamos um nível de SWAP elevado, que foi esclarecido por uma
instabilidade do MySQL que roda uma central de atendimento ao cliente e
estava comendo 500MB de RAM. Ao reiniciarmos o serviço do MYSQL, tudo
voltou ao normal, mas por via das dúvidas, aumentamos a memória para 2GB
e colocamos a Central com MySQL em outro server.
Quando tínhamos 1GB, sempre tínhamos, durante o dia, uso de 900 MB de
RAM e 16 MB do Swap. Aumentamos para 2GB e hoje temos, normamalmente,
1.9 GB em uso e 32KB de swap.
Conclusão que tiramos: Coloque o quanto de memória você quiser, o FB vai
se espalhar e o próprio LINUX vai cachear o que conseguir e isso não
quer dizer que eles estão usando memória de mais, mas apenas se
beneficiando ao máximo do que você oferece. Assim, desencane com uso de
memória e fique de olho no SWAP, se ele começar a aumentar, é porque a
RAM está insuficiente.
O maior problema que tivemos no setup desse ambiente, não foi
relacionando ao FB, mas sim à qualidade das queries programadas.
Algumas, mal escritas, e de muito uso, levavam a 100% de consumo de CPU
e praticamente travavam o server. O mesmo para algumas triggers com
recursividade.
Assim, respeito quem diz isso ou aquilo do Classic e reconheço o
conhecimento que essas pessoas demonstram, porém, na prática, sem
"tunar" nada, rodando o script padrão de instalação, e sem DBA
especializado na equipe, o Classic dá um show, levando-nos a concluir
que a arte mesmo é ter conhecimento de Banco de Dados suficiente para
arquitetar e modelar sua estrutura, e o resto, deixa que o FB dá conta
do recado direitinho.
Já vi colega dizendo que teve que trocar o FB por Oracle porque o
projeto eram muito grande e o FB não estava guentando. Nunca consegui
entender bem isso.
Abraços
Eduardo
Carlos H. Cantu escreveu:
> SH> Isso é um problema da equipe de firebird, eles que devem
> SH> procurar resolver esses problemas.
>
> Pelo jeito você não sabe quem é o Adriano que está falando com vc neh?
> Ele eh o único brasileiro que participa da equipe de desenvolvimento
> do Firebird e, diga-se de passagem, tem feito muitas melhorias no mesmo.
>
> SH> Outra coisa, obviamente que não consegui resolve-los, a documentação não é
> SH> clara nesse aspecto. Já que voce comentou com relação a outros bancos, basta
> SH> verificar que o proprio MySQL tem uma documentação com uma qualidade muito
> SH> superior ao Firebird.
>
> Isso é culpa da própria comunidade. Faça uma auto-crítica: vc já fez
> alguma coisa pra mudar/melhorar isso? Você contribui com a fundação
> Firbeird? Vc contribui com o projeto de documentação do Firebird?
>
> O MySQL tem muito mais dinheiro, e consequente muito mais gente
> trabalhando, do que o Firebird. A culpa disso é da própria comunidade,
> que muitas vezes só reclama, e não faz nada pra ajudar (obs: nada
> pessoal contra vc).
>
> []s
> Carlos H. Cantu
> http://www.warmboot.com.br
> FireBase - http://www.FireBase.com.br
> Blog - http://blog.firebase.com.br
>
>
>
> ______________________________________________
> 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