#1
  1. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Oct 2010
    Posts
    2
    Rep Power
    0

    Firebird server total memory usage question


    We have been using Firebird in our warehouse management systems for the last couple of years and have been very impressed by it's performance. I just have a question regarding its memory usage on servers with lots of ram.

    We are running a V2.0.x superserver with 100+ connections to the database. The database file is about 10GB and our client applications range from a multi-threaded socket server using the ADO .NET driver to delphi 7 clients using FIBPlus direct connections.

    Accoring to Task Mamager the fbserver.exe process only uses about 80MB of ram, but the machine has 4GB to offer (granted only 3.2GB as it's Windows Server 2003 32-bit). Also this is a multi-core cpu, but CpuAffinity has been set to 1 to only use one core.

    We are pretty convinced that the database design is not at fault completely, as almost all queries return sub 1 second.

    A potential problem is starting to occur now that the database is growing bigger and the connections are increasing and the users are seeing a degredation in performance/response times.

    Should we consider classic mode? Keep it mind that 80% of the connections are quick sub 1 second connections from WifI based handheld scanners?

    Any advice would be appreciated.
  2. #2
  3. Bug Hunter
    Devshed Newbie (0 - 499 posts)

    Join Date
    May 2003
    Location
    Transylvania (Romania)
    Posts
    309
    Rep Power
    24
    Classic is based on Unix philosophy
    one process per connections and this way you can use all the cpus in the system
    and isolate each connection from each other

    http://www.iblogmanager.com/download...comparison.pdf

    sometimes the system can be io starved in database case and to make it faster for I/O must run it on a raid 0/1 or ssd or increase the cache

    I will show you how the cache is used and shared in superserver/superclassic/classic
    so it might help you if you have a lot of ram to increase the cache buffers

    http://www.sinatica.com/blog/en/inde...r-superclassic
    My home page: http://www.firebirdsql.org and work place :http://www.reea.net
  4. #3
  5. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Oct 2010
    Posts
    2
    Rep Power
    0
    Thank you for your reply and links - I've read through them and it makes even more sense now. Superserver has a shared cache which is not ideal for hundreds of connections. I'll give classic a go, and then maybe switch to V2.5's superclassic so simplyfy the server maintenance and control of the instance.

    I doubt that the server is straving for IOs, the HDD is not that active and the system (windows os) respondes very quickly. It almost feels as if only 20% of the server's potential output is being used by Firbird and the rest is in idle. Having written other projects in MSSQL i've seen it taking up all the RAM available for cache (unless you limit it), and I am looking for a similar behaviour in Firebird.

    Thanks again.

IMN logo majestic logo threadwatch logo seochat tools logo