[firebase-br] RES: Servidor FireBird + CpuAffinityMask = 3
Eduardo Jedliczka
jedyfb em gmail.com
Qui Mar 19 21:44:27 -03 2009
Concordo com o Eduardo Bahiense... na maioria das vezes o Superserver apresenta performance melhor que o Classic numa máquina single-core (100% das vezes) ou dual-core (em boa parte das vezes), principalmente se o seu banco inteiro couber na RAM do computador (onde a quantidade de acessos de leitura é drasticamente reduzida, mas não a quantidade de gravações).
O Classic é insuperável quando se tem 6 ou mais núcleos, e pelo menos 8
gb de ram.
Mas duas coisas que impactam absurdamente o desempenho do banco (e
poucos dão atenção) é Velocidade do HD e quantidade de RAM.
Para tirar dúvidas, resolvi comparar um Servidor de médio custo, com um
Desktop top-de-linha, com o FB Classic - banco de 6 gb, com aprox. 100
conexões concorrentes (Ambos com UBUNTU Server 8.04 com kernel SMP).
Desktop: Core 2 Quad 3.16ghz com 4 gb de ram (2x2 gb Geil DDR2 800 CAS
4) e 2 HDs SATA 500gb de 7200rpm em Raid (stripping)
Servidor Dell: 1x Xeon-Dual Core 2.4 com 4 gb de ram (4x1gb FBDIMM 800),
controladora SAS com 256mb de cache e dois discos 2.5" 146gb de 15.000
rpm em Raid (mirroring)
OK. o Dell é um servidor, com processador XEON (que perde em qualquer
benchmark para o C2Q 3.16 de 8 mb de cache) que custava o dobro do preço
do desktop.
Resultado: o DELL ESPANCOU, HUMILHOU, DESTROÇOU o Desktop. - Num restore
então, o XEON gastava menos de 5 minutos enquanto que o desktop
precisava de mais de 20min!!!!
então, o que causou a diferença ? a qualidade das memórias (que possuem
cache interna em todos os pentes) e a brutal diferença de desempenho dos
discos (e da controladora SAS né).
Ou seja, processador interfere (naturalmente interfere e muito)... mas
muitas vezes um processador rápido fica no aguardo de dados que estão em
disco. Se eu tivesse pelo menos 8 gb de ram, o desempenho começaria a
favorecer o C2Q.
Porém, com12 GB de Ram (meu desktop não aceita tudo isto, e o server
aceitava módicos 8 pentes de 2 gb) aposto que o C2Q levava o troféu
(exceto no restore).
Ou seja, pense muito sobre a configuração do equipamento que você
pretende adotar, veja quantos usuários serão atendidos... Muitos
reclamam da performance do FB, mas não querem gastar 5 ou 6 mil com
servidor (que é Quase o que duas licenças ENTERPRISE do M$ SQL SERVER).
PS: Também fiz testes com um Dual Xeon-Quad Core 2.2 com 16gb de ram
(8x2gb) e 4 discos de 300gb de 15k rpm em Raid 0+1 (valor de mercado de
mais de 20 mil reais), mas aqui já é covardia... nunca vi mais do que 6
núcleos usarem 100%, mesmo com mais de 300 conexões concorrentes (e uma
base de 16 gb)
Mas, falando do superserver e classic, se você tem 2gb ou menos de Ram e
um processador c2q, deixe o próprio SO fazer cache do banco e usar o
segundo núcleo para ele, pois nos processadores da Intel para desktop, a
cache L2 é compartilhada (assim como o barramento) pelos dois núcleos, o
que faz que o SS aproveite bem o conjunto.
Sem mais,
Eduardo Jedliczka
Universidade Tecnológica Federal do Paraná
Campus Apucarana
Em Qui, 2009-03-19 às 18:41 -0300, Eduardo Bahiense escreveu:
> 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
Mais detalhes sobre a lista de discussão lista