Zvjezdan Tomicevic wrote:

I run firebird 2.1.3 64 superserver win server 2008. I have 4gigs of ram. I run a single database wich is update a lot, so i had to deactivate autosweep, and do it via task manager in offline hours. The problem is, its a 3gigs database, and sweep causes FileSystemCache to kick in, and consume 3.5 gigs of RAM. In Firebird 2.5 there is config paramter to control this but it's still RC. In 2.1 I can either:

  1. switch to classic
  2. disable filesystemcache

What are the experiences with disabling filesystemcache, pros and cons?

Sean Leyne answers:

Switching to Classic won't help -- it is Windows x64 giving you the problems, not Firebird.

Have a look at the CacheSet utility from SysInternals: http://technet.microsoft.com/en-us/sysinternals/bb897561.aspx

I can tell from my own experience that when the database or a table (and it's indexes) is much larger than the available RAM, the server will promote too much memory "thrashing", which will results in poor server performance. Limiting the OS file cache allows the thrashing to be minimized.

Zvjezdan Tomicevic adds:

True. Here is doomsday scenario:

  • You have 10 gigs database on reasonably loaded server, and 4 gigs or RAM.
  • Your FBServer porcess uses around 100MB of RAM.
  • You start manual sweep.
  • Filesystem Cache uses all available RAM to cache database file (becose 64 bit os does not have limit on ram used for caching).
  • OS starts using swap instead of RAM.
  • You get bluescreen crash.

So you have to disable filesystem caching on 2.1 firebird that runs on 64 windows server, or use sysinternals to limit ram used for file caching.

Douglas Tosi adds:

I recently came across this tool to manage Windows File Cache on 64 bit systems: http://www.microsoft.com/downloads/details.aspx?FamilyID=e24ade0a-5efe-43c8-b9c3-5d0ecb2f39af&displaylang=en

Like this post? Share on: TwitterFacebookEmail

Related Articles


Firebird Community



Gems from Firebird Support list