Subject Re: [firebird-support] Firebird 2.5 classic performance issue on linux64
Author Andreas Zeller

Hi Alexey,

thanks for the response. I think you missed a few things in my message. Yes, the hardware configuration is battery-backed and failsafe. RAID is configured for performance. Losing a days work due to a power outage and having a nightly backup is an acceptable risk to the client. But that's really the worst case scenario including battery fails.

I already use the configuration posted there. It was one of the first things I found on Google.

Secondly, as I already said: queries are out of my control. It's third-party software and I am well aware that most of the database performance issues are design-related. People who don't use joins properly and do unnecessary sub-queries and what not.

I already wrote that I am concerned that my firebird configuration might be overridden entirely, because it ignores the temp directory setting. It also ignores the environment variable that I set.

I also asked if there was a way to point the binary specifically to a config file or check if the configuration settings take effect.

Appreciate any help. Sorry about repeating myself, it's just very hard to find conclusive information about firebird anywhere.


On 26.02.2017 22:34, Alexey Kovyazin ak@... [firebird-support] wrote:


Use optimized configuration file:

Please note that if you have number of buffers set in database header, it overrides firebird.conf value.

Check that RAID has BBU, read-write cache is enabled and write is set to write-back.
After that  - start to check performance of your queries - non-optimal queries lead to 90% of performance problems.

Alexey Kovyazin


Hi everyone,
I originally tried to post to this like I would to a normal mailing list. I've never seen an open source project that required me to have a yahoo account ;) I have a firebird-related problem however.
I'll try and provide as many details as possible, so this message is
going to be a little bit longer, but here goes:

I encountered a bit of trouble migrating a firebird server from an
ancient w2k SBS to a powerful debian-based DL380 server.

I'll share my story, so people facing the same problems can scratch
things off their list. First off, the application connecting to firebird
was horribly slow. After the switch to classic flavor, things didn't
really seem to change, but our client told us it has become a bit better.

The following things have already been done:

- increase page size to 16kB (gbak -> and restore with new pagesize)
- increased buffers for firebird to use up to 4GB of ram (256kB) via gfix
- switchted to async writes because we have redundancy and data security
on hardware level (also via gfix)
- got rid of automatic sweeping by transaction count and added a cron
job to handle this after hours

After all of this didn't really seem to do much, we had to pull out the
big guns:

- additional raid controller
- additional two-disk raid-0 array
- switched to XFS (the firebird db file is 43 GB big)

Performance improved a bit, but still not the way we would like it to be.

Here are a few things that I have personally noticed:

- $FIREBIRD_TMP="/path/to/my/fast/space/" will be entirely ignored.
- setting TempDirectories doesn't seem to get evaluated either

That makes me think which other settings I did in firebird.conf will
just be thrown out of the window. We run firebird through xinetd, I even
gave it a scheduler priority (nice value) of -15 but CPU doesn't really
seem to be the issue. It just seems like firebird takes forever to
process a request that goes across several tables.

Here's the stuff that is out of our control:

The software using firebird under the hood is just horribly designed.
There's binary data in the database, which makes it huge to begin with
and I doubt that queries, selects, joins, etc. are implemented in a
smart way.

BUT: all of this ran pretty fast on an ancient windows machine with
synchronous writes and lots of other inefficient configuration. I also
read that certain borland libraries are having performance issues
connecting to a linux64 firebird.


Serverside: firebird2.5-classic: Installed:
Clientside: gds32.dll / dbxup_fb.dll

Connection is done via network host:/path/to/db-file.fdb which works
just fine, but horribly slow.

If you guys need any more input, I can provide it.

- What else can I do to improve performance (I'm still missing the one
thing that feels like releasing the hand-brake)?
- Why is firebird ignoring the environment variable and the .conf setting?
- Is there a way to explicitely provide a config file to firebird? The
manual page doesn't offer such an option.

Thanks very much in advance and sorry for whipping up half a novel 

-- *Andreas Zeller* Geschäftsleitung <> Carl-Friedrich-Gauss-Str. 56 47475 Kamp-Lintfort Office: +49 2151 32 66 628 Fax: +49 2151 32 66 721 Mobil: +49 163 27 9 1979