[firebase-br] Limites do Firebird

Miguel miguel em franca.sp.gov.br
Qua Fev 14 10:08:21 -03 2007



Dominando Firebird (Helen Borrie)

Apêndice VII - Limites do Firebird (Pagina 861)

Objeto Servidor:
Número Máximo de Clientes conectados: Firebird 1.5 (1024 TCP/IP)

Comentário: "O limite teórico menor para os pipes com nome do Windows (NetBEUI) - o servidor provavelmente ficará suspenso com mais de 930 conexões concorrentes. Como uma diretriz prática, trabalhe com base em um máximo de em torno de 150 clientes concorrentes do SuperServer para uma aplicação interativa normal em um servidor de especificação baixa a média, com contenção baixa a moderada, antes que o desempenho possa fazer você considerar um upgrade. Para o servidor Classic, os números podem ser mais baixos porque cada cliente consome mais recursos."

Muito bem.

Sobre esse limite, perguntas:

1 - Essas 930 conexões são contadas de que jeito? São 930 conexões diferentes num mesmo banco (arquivo .fdb)? Numa mesma tabela de um determinado banco? Ou num mesmo servidor onde temos vários bancos?

2- Esse limite é por IP? Ou seja, 930 IP´s diferentes podem conectar-se quantas vezes quiser? (Fizemos um teste em uma máquina e conseguimos abrir pouco mais de 2000 conexões. Travamos num "Out of memory"). Mas isso era um único e solitário IP. Por isso essa dúvida.

3 - Seria essas 930 conexões o número máximo de transações abertas ou transações num tem nada a ver com isso?

Imagine uma aplicação WEB que faça conexões com os seguintes bancos:
a - geral.fdb (Onde concentramos tabela que todos os demais usam. Ex.: Tabela de Rua, Tabela de Bairro, Tabela de Feriado, etc..)
b - biblioteca.fdb (Cadastro de Livros, empréstimos, reserva, "Clientes"*, etc.)
c - folha_pagto.fdb ("Funcionário"*, Vencimentos, Lançamentos, etc..)

Agora imagine que há um certo link entre a Tabela Clientes (biblioteca) e a tabela Funcionário (folha_pagto) de forma que eu só aceito clientes para a biblioteca que tenha sido indicado por um funcionário (CodFuncionarioResponsavel)..

Ao rodar isso na WEB, terei que fazer uma aplicação com as 3 conexões. Nesse contexto, estaria eu atingindo  930 conexões ao abrir o aplicativo em 310 máquinas diferentes e a "sortuda" máquina 311 não teria acesso na aplicação. É isso?! Alguém já testou esse limite?!

Espero as considerações dos colegas.

Obs.: Estamos migrando de SQL Server para o Firebird, mas antes gostaria de entender bem esse limite do objeto servidor. 




Mais detalhes sobre a lista de discussão lista