Subject Re: [firebird-support] Hyperthreading, FB 1.5/2.0, Pentium 4, Win2003?
Author Geoff Worboys
> It was my understanding that the hyperthreading issue was
> resolved in FB 1.5, at least that was the reason we moved
> to FB 1.5 in the first place and I seem to remember our
> testing showed that it was fixed.

I am not not familiar with all issues that may have existed,
but I can confirm that at least one HT issue remains with
FB v1.5.2 (superserver).

If HT is enabled and you do transfers between two databases
using non-local connections (eg: TCPIP either remote or
localhost) then the transfer seems to pause at intervals.
(Everything just sits there, no CPU activity, nothing). After
a short time (a few seconds to a minute or so) it wakes up and
does some more records and then pauses again.

The problem is unpredictable. It does not effect all tables,
(seeming to effect mostly tables with a large number of rows),
it does not pause in the same places each time nor for the
same amount of time. In some situations it can be very severe
making the transfer so slow as to be impractical, in other
situations the pauses may be hardly noticed.

Activity on other server connections (to the same or different
databases to those involved in the transfer) seems to wake-up
the transfer. So the problem is mostly seen during data-pump
situations where no other users are operating - like my DBak
appliciation :-(

On single CPU systems with HT the solution is to disable HT.

On systems with dual physical CPUs plus HT (so you see four
CPUs in the task manager) it is possible that disabling HT
will actually make the situation worse! Note that this is NOT
the old SMP problem, it is specific to newer CPUs with HT
capability. I have run FB on older SMP systems with no
problem (with CPU affinity of course).

The only way to minimise the problem on dual physical CPU
systems seems to be to leave HT enabled and set the CPU
affinity to at least the two logical CPUs on the same physical
CPU (0 + 2 or 1 + 3). Even then the pauses seem to occur.
Setting the CPU affinity to all four CPUs seems to stop the
pauses but I have not yet worked out whether this then causes
the old SMP CPU-thrashing problem to occur.

I have seen the problem myself on Win2000 Server, WinXP Pro.
I have heard other reports of the problem on WinXP and also
Win2003 server.

I have not seen the problem occur in other situations, such as
normal user activity against the server, I have only ever seen
it during data-pump. That is not to say it does not occur,
only that I cannot seem to produce it in other circumstances.

--
Geoff Worboys
Telesis Computing