> 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/

Reply via email to