[firebase-br] RES: RES: Servidor FireBird + CpuAffinityMask = 3

Eduardo Bahiense eduardo em icontroller.com.br
Sex Mar 20 10:39:54 -03 2009


Oi Luiz

Pool de conexões é um mecanismo onde o seu servidor mantém um número de 
conexões com o banco pré-abertas, e ao receber uma requisição de 
conexão, aloca o pedido a uma das conexões do pool - a que estiver menos 
ocupada. Isso é típico de ambientes em camadas. Se você não conhece o 
conceito, provavelmente seu sistema não está arquitetado em camadas.

Na arquitetura que usamos em nosso servidor, o Apache mantém 15 
processos fastcgi abertos, cada um com uma conexão com o FB e todos os 
acessos ao banco são feitos por uma dessas conexões, idependente do 
número de usuários conectados. Porém, nosso sistema se comunica com o 
servidor completamente por http, com GETs e POSTs, Não sei como isso 
funciona em outras plataformas como COM, DCOM e outras que estão 
disponíveis no Delphi.

O problema que vejo em usar o Calssic em um ambiente de alto tráfego sem 
pool de conexões é que você não terá controle sobre o número de 
instâncias abertas do Classic e pode correr o risco de esgotar a 
memória. O uso do Superserver é mais confortável quanto a esse 
gerenciamento, é uma preocupação a menos. Como as máquinas hoje são 
muito possantes, assim como a velocidade de acesso a disco e quantidade 
de memória, um segundo núcleo, com processamento simétrico, dependendo 
do seu volume de carga, não faz tanta falta assim, especialmente se 
considerarmos a questão de que outros processos concorrentes no 
processador estarão sendo distribuídos entre os núcleos e deixando o 
núcleo do FB sempre não tão sobrecarregado.

Agora, se o seu caso é um ambiente de até umas 30 conexões simultâneas, 
com o hard que vc tem, nem esquenta, use um ou outro indistintamente e 
pode fazer qualquer teste de performance que, estatíticamente, não 
haverá variações significativas.

Observe que não tarda o Superserver suportar SMP e o Classic ser 
descontinuado.


[]s, Eduardo

LuisFireVB escreveu:
> Puxa Eduardo pela primeira vez encontrei algo (+) claro e prático que
> somente teorias do que é um ou outro.
> 
> Só não sei o que é Pool de conexões?
> 
> Valeu mesmo pela dica da experiência.
> 
> Luis
> 
> 
> -----Mensagem original-----
> De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
> nome de Eduardo Bahiense
> Enviada em: quinta-feira, 19 de março de 2009 18:42
> Para: lista em firebase.com.br
> Assunto: Re: [firebase-br] RES: Servidor FireBird + CpuAffinityMask = 3
> 
> Olá Denis
> 
> Deixa eu te passar um pouco da minha exepriência neste assunto:
> 
> A decisão de optar entre o classic e o superserver vai um pouco além dos 
> núcleos.
> Mesmo que esse servidor seja dedicado apenas ao FB, ele roda outros 
> processos do Sistema Operacional, assim, se você tem dois núcleos, 
> quando o núcleo que o FB usa estiver ocupado, o próprio S.O. desviará os 
> outros processos para o núcleo mais livre, e isso, na prática, será quae 
> como se o FB usasse os dois.
> 
> Quando você fala em Classic, você está falando em uma instância do FB 
> para cada conexão, a menos que você trabalhe com pool de conexões. Em 
> nosso caso, que trabalhamos com pool de 15 conexões, a diferença de uso 
> de memória foi brutal entre o classic e o superserver (hoje usamos o 
> superserver), com 4GB de RAM, gerenciando 3 bancos volumosos, tínhamos 
> sempre a memória toda utilizada, claro que a maior parte da memória 
> utilizada era em chache do linux, que mais otimiza do que atrapalha, com 
> o Superserver, hoje em um server de 8GB, temos sempre em torno de 5 GB 
> livres (que desperdíco, não?).
> 
> Assim, eu acho que poderíamos resumir da seguinte forma:
> 
> 1. Você usa pool de conexões ? -> Classic é uma opção
> 2. A quantidade de conexões simultâneas é baixa -> Classic é uma opção
> 3. A quantidade de conexões simultâneas é alta, mas os BDs são pequenos 
> ou o volume de transações é pequeno-> Classic é uma opção
> 4. Os Bds são muito grandes ou a quantidade de conexões é muto grande ou 
> o volume de transações é muito grande, com 4GB eu optaria pelo Superserver
> 
> 
> Eduardo
> 
> Denis escreveu:
>> Olá,
>>
>> A Maquina que está o banco de dados é um Dell Xeon E3113 com 4GB de
> memória 
>> e HD SAS, com Windows Server 2003 R2. Como política da empresa e até
> minha, 
>> não entra nenhum software ilegal aqui. Nem para teste. Creio que não terei
> 
>> problemas então, se colocar a versão classic. Outra coisa, esta máquina
> vai 
>> ser usada exclusivamente para banco de dados, mais nada.
>> Vou deixar rodando um pouco mais o banco de dados com a versão SuperServer
> e 
>> depois vou colocar a Classic para ver qual se comportará melhor. Aí a que
> se 
>> adaptar melhor eu deixo ela funcionando.
>>
>> Denis
>>
>>
>> "Rodrigo A. de Freitas" 
>> <rodrigo em solucoeseinformatica.com.br> 
>> escreveu na mensagem
> news:46D24670810544058832E03D589AA8F4 em SOLUCOES.local...
>> Denis,
>>
>> Como o Cantu disse, o SuperServer não usa SMP então o parâmetro
>> CpuAffinityMask apenas diz qual núcleo do processador ele deve utilizar.
>>
>> No seu caso, você precisará instalar a Classic Server. A versão CS carrega
>> uma instância do FB_INET_SERVER para conexão feita ao banco de dados;
> assim,
>> o próprio sistema operacional se encarregará de balancear a carga dos
>> processos abertos pelas conexões entre os vários núcleos do processador.
>>
>> Um aviso: a versão CS é uma comedora de memória. Você precisará ter
> bastante
>> memória para que o servidor não fique sobrecarregado caso sua aplicação
>> tenha muitos usuários e/ou utilize várias conexões a base de dados, sem
>> contar os recursos do servidor que serão utilizados para outras
> aplicações,
>> caso a máquina não seja exclusiva para a base de dados.
>>
>> Eu tive problemas assim com um cliente, até que eles adquiriram um
> servidor
>> Dell exclusivamente para o BD. Instalaram um Linux Debian e nunca mais
> tive
>> problemas de performance.
>>
>> []'s
>>
>> Rodrigo A. de Freitas
>> Análise & Desenvolvimento
>>
>> Soluções & Informática
>>
>>
>>
>> -----Mensagem original-----
>> De: lista-bounces em firebase.com.br 
>> [mailto:lista-bounces em firebase.com.br] Em
>> nome de Carlos H. Cantu
>> Enviada em: quinta-feira, 19 de março de 2009 11:19
>> Para: FireBase
>> Assunto: Re: [firebase-br] Servidor FireBird + CpuAffinityMask = 3
>>
>> D> Então só para eu entender melhor. Significa que qualquer processador
> com
>> D> dois núcleos, o FB não vai usar inteiramente o processador, ou seja,
> não
>> D> compensa comprar uma máquina com dois núcleos no processador.
>>
>> Não. O SuperServer não usa SMP (CpuAffinity é um parâmetro do
>> SuperServer). A versão Classic utiliza quantos processadores estiverem
>> disponíveis. Procure nas mensagens antigas da lista para saber mais.
>>
>> []s
>> Carlos H. Cantu
>> www.FireBase.com.br - www.firebirdnews.org
>> www.warmboot.com.br - 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
>>
>> No virus found in this incoming message.
>> Checked by AVG - www.avg.com
>> Version: 8.0.238 / Virus Database: 270.11.19/2011 - Release Date: 03/19/09
>> 07:05:00
>>
>>
>> ______________________________________________
>> 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
> 
> 
> ______________________________________________
> 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
> 





Mais detalhes sobre a lista de discussão lista