Subject | Re: [firebird-support] Re: Connection limit |
---|---|
Author | Thomas Steinmaurer |
Post date | 2012-02-09T13:02:26Z |
> Thanks for the reply ThomasAh, ok, thought 1000+ attachments on a single database. Well, AFAIK, in
>
> I forgot to mention that the 1000+ attachments we are expecting is over about 60 databases, where the maximum attachments to a single database is about 50. How will this affect the contention on the lock table?
2.1, the lock table is per instance, while the lock table in 2.5 is per
database. Simply monitor the fb_lock_print output to possibly increase
the lock mem size and the hash locks value.
I would argue that serving the 60 databases with several Firebird
instances would make sense. Perhaps grouping the databases per instance
by QoS requirements ...
--
With regards,
Thomas Steinmaurer (^TS^)
Firebird Technology Evangelist
http://www.upscene.com/
http://www.firebirdsql.org/en/firebird-foundation/
> --- In firebird-support@yahoogroups.com, Thomas Steinmaurer<ts@...> wrote:
>>
>>> 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/
>>
>
>
>
>
> ------------------------------------
>
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>
> Visit http://www.firebirdsql.org and click the Resources item
> on the main (top) menu. Try Knowledgebase and FAQ links !
>
> Also search the knowledgebases at http://www.ibphoenix.com
>
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> Yahoo! Groups Links
>
>
>