Subject Re: Firebird performance on Dual Core machine
Author Adam
--- In, Andi Wangsadijaya
<And1_Wangsadijaya@y...> wrote:
> Hello Helen,
> On Monday, January 2, 2006, 5:53:18, You wrote:
> > Yes, it's true for the Superserver version, but not for Classic.
> > With SS you should keep the CPU affinity to one CPU. By default,
the value
> > (a bitmask) is 1, which sets the affinity to CPU 0. Read the
release notes
> > and the notes in Firebird.conf. The release notes provide the
> > for calculating the CPU affinity bitmask.
> > ./heLen
> If I set the affinity to CPU 0, will the performance to drop? Or it
> just make the performance is better than set the affinity to CPU more
> then 0?

I wasn't too sure whether multicore was seen as two separate CPUs
(like multiple processors) or two virtual CPUs (hyperthreading). From
Helen's response, my educated guess is it is more like the first one,
so will have the same problem as multiple processors.

This problem involves Windows putting the Firebird process on one CPU,
noticing it is doing more than the second CPU, so doing a load balance
and moving the Firebird process to the second CPU, then noticing the
second CPU is now overworked, and the first is idle, and on it goes.

The CPU Affinity basically tells it to always execute on the given
CPU(s), regardless if Windows internal load balancing routine. As
there is so much performance lost in switching CPUs, it is often
better to only use one of them for Superserver.

Classic Server is different and so does not have this issue, you can
make use of multiple CPUs.