Subject Re: Face Firebird 1.5.3 performance problem with Intel Core 2 + Windows 2003
Author Adam
--- In, "Dimitry Sibiryakov" <SD@...>
> On 17 Aug 2006 at 11:36, Chau Chee Yang wrote:
> >When I run my program to access the Firebird database, I have
> >performance problem. The response is very slow compare to Windows XP
> >machine.
> Win2003 may perform IO very badly and require tuning.
> Unfortunatelly, I can't remember details.


I considered responding to his post last night but decided in the end
that there really wasn't enough information to say anything sensible.
The performance we see on our win2003 servers leaves our win2k Server
and win xp installations at the starting line. I do not attribute it
directly to the OS, our Win2003 servers tend to have high speed SCSI
RAID kits, lots of RAM and gigabit network cards, and the machines
running the other OS tend to be older or workstation class instead of
server class, so it is an unfair comparison.

Chau, you must realise you provided very little information, and alarm
bells have started to fire when you state that you have done some
tuning, perhaps you have inadvertently made things worse for yourself.

You mention it is slower, but we need some metrics here. Are you
saying that it takes a long time to establish a connection, or that
queries are taking a long time etc? What is happenning, is the disk
hammering or is CPU pegged at 100%? How are the disks setup? A single
drive or a high speed RAID?

Win2003 is not tiny, is 1GB of RAM enough? You may need to reduce the
cache sizes so that the cache does not overflow into virtual memory.

1. Install Firebird 1.5.3 Super server and change CPUAffinityMask = 1
or CPUAffinityMask=2. Each change I restart the machine.

You don't need to restart the machine, just the service. I would not
play with the CPUAffinityMask unless you are observing the bouncing
between processors that may occur. Is it two processors or a dual core
single processor?

2. Uninstall Firebird 1.5.3 Super Server and Install Firebird 1.5.3
Classic Server.

That works well too, more demanding on RAM, you are looking at about
8MB per connection as a base (well depending on your cache sizes and
database page settings).

I would be:

1) Confirming you don't have volume shadow copy enabled on the volume
hosting the Firebird database.

2) Don't have any background process acting as a bottleneck, such as
spyware scanners, virus scanners, packet scanners etc.

3) Make sure your database memory footprint can be 100% contained in
physical RAM, reducing cache sizes if required to achieve this.

Make sure you are comparing fairly. If you are not using the same
database, the database on the server may contain a lot more garbage
than the one on the xp machine.