Subject Re: [firebird-support] Connection limit
Author Thomas Steinmaurer
> What is the current maximum number of connections firebird(2.1/2.5) can
> handle on a wondows 2008 r2 server. Is it still the 1024 limit set by the
> OS or has this changed?

Just connecting with 2.5.2 SC 64-bit snapshot on Win 7 Prof. with 12GB
RAM and 75 page buffers without doing anything in context of these
connections:

SQL> select count(*) from mon$attachments;

COUNT
============
1201

Perhaps higher possible. What you can see is that the number of threads
of the SC process stays at 1029. Doing some work then (with a SMP-test
utility I once wrote for a presentation; see below), you will get VERY
high (*g*) contention on the lock table:

Hash slots: 1009, Hash lengths (min/avg/max): 57/ 83/ 102

with the default hash slot value of 1009. Quit that test.

The SMP-testing utility basically allows to simulate a configurable
number of client attachments via one thread per client attachment. It does:

- Insert <n> records per attachment into a GTT via one simple stored
procedure call
- Each attachment will fetch the inserted records to the client

Another workload with 1201 client attachments (2 SMP-test utility
instances running), processing (inserting into GTT and fetching) 5000
records each. This time with a higher hash slots value.

- 5000 records per attachment into a global temporary table via one
simple stored procedure
- Each attachment will fetch the inserted records to the client

My AMD hexa-core workstation was busy, but the test was finished in ~50
seconds. Took a lock print during the fetching phase.

Hash slots: 10133, Hash lengths (min/avg/max): 0/ 4/ 15


> The question arises because we would like to consolidate two servers, and
> one of them already has about 800-900 attachements(A program written en
> delphi using a connected model). The other server has about 300
> attachements. serving websites and webservices(using connection pooling)

The question is if you really need that number of physical connections
from your Delphi application and what you are doing in context of your
connections. If one instance doesn't handle the load, you still can run
a second on the same server, if you have enough resources available. But
these days, with low hardware prices, virtualization etc. ...


--
With regards,
Thomas Steinmaurer (^TS^)
Firebird Technology Evangelist

http://www.upscene.com/
http://www.firebirdsql.org/en/firebird-foundation/