Subject | Re: [firebird-support] Re: Firebird 1.5.2 SuperServer on Win32 SMP systems |
---|---|
Author | Alexandre Benson Smith |
Post date | 2005-12-05T16:04:03Z |
mikkatgo2pl wrote:
100% correct.
FB SS are not SMP friendly, AFAIK there is just on thread running at a
time (this is the part I am not 100% sure), wich leads system to use
high CPU, and Windows Scheduler move the process to the "idle" CPU, then
the same occurs in the other CPU and Windows put it back to first again,
and so on. The system spend more time swaping the process between CPU's
then executing it.
The main difference betwen SS x CS is that SS in a single process with
multiple threads (one per connection) and uses a shared database cache.
CS uses on process for each connection and each process has it's own
cache (so it is more resource consuming). But since each connection has
it's own process, windows scheduler can put the different process in
different CPU's and so you got the SMP bennefit.
I think the oposite, if I will have a bunch of users then I'd go for CS
instead of SS. Just make sure you don't define a big cache size for CS
(once it is per connection you could have a huge memory consume).
see you !
--
Alexandre Benson Smith
Development
THOR Software e Comercial Ltda
Santo Andre - Sao Paulo - Brazil
www.thorsoftware.com.br
>Thank you for your reply, Alexandre.Someone could put more details here, or correct me if I say anything not
>
>As I read the docs, the Classic Server is more resource-consuming
>(allocates few MB per client connection in new process for each
>connection) than SuperServer, and from my calculations there is better
>to have SuperServer when the average connection count is about 100.
>But as I wrote in the original post - performance is crucial and I'm
>trying to achieve high performance with low memory cost. Why do you
>say that the SuperSever is not good on multiple CPUs?
>
>
100% correct.
FB SS are not SMP friendly, AFAIK there is just on thread running at a
time (this is the part I am not 100% sure), wich leads system to use
high CPU, and Windows Scheduler move the process to the "idle" CPU, then
the same occurs in the other CPU and Windows put it back to first again,
and so on. The system spend more time swaping the process between CPU's
then executing it.
The main difference betwen SS x CS is that SS in a single process with
multiple threads (one per connection) and uses a shared database cache.
CS uses on process for each connection and each process has it's own
cache (so it is more resource consuming). But since each connection has
it's own process, windows scheduler can put the different process in
different CPU's and so you got the SMP bennefit.
I think the oposite, if I will have a bunch of users then I'd go for CS
instead of SS. Just make sure you don't define a big cache size for CS
(once it is per connection you could have a huge memory consume).
see you !
--
Alexandre Benson Smith
Development
THOR Software e Comercial Ltda
Santo Andre - Sao Paulo - Brazil
www.thorsoftware.com.br