Subject Re: [ib-support] Interbase/Firebird memory question
Author Helen Borrie
At 10:29 AM 27/02/2003 +0100, you wrote:
> presently i'm using Interbase 6 Open Source

Have you checked to see whether the IB 6 server is running with Forced
Writes false (Asynchronous Writes true)? (IB 6 installs itself with Forced
Writes false, by default...) If so, and your application is allowing users
to hold transactions open for lengthy periods and/or you have clients doing
large batches of DML, then you could stack up a lot of "unfinished
business" in RAM. It's just a thought...

>and i'm testing Firebird 1.0 for the migration.

Firebird 1 should have installed itself with Forced Writes true. How hard
would it be to run it with similar load and see if you notice a difference
in RAM consumption?

>The databases engine (IB6) is installed on a RedHat 7.1
>server machine.
>When the engine start it takes about 18 Mbyte and 4 processes. Then i launch
>some application that use 2 different mono-file databases of maximum 10
>Mbyte size. With about 3 simultaneous connection on the first database and 5
>on the second one my interbase size reach after some days about 120 Mbyte of
>memory with about 8 processes and keep on increasing.

Is it Classic or Superserver? Classic allocates a pre-defined chunk of
cache memory for each independent connection process, whereas SS allocates
one chunk which it shares with all of the child processes which are created
for each connection.

>In order to understand if it's a bug in application or an IB normal
>behaviour i need to make me an idea on how to evaluate the maximum size
>that such database might reach in memory related to the maximum number of
>active connections,the database file size and the IB sever configuration
>Anyone can help me to find out a method or an explaining document to solve
>this memory evaluation problem ?

There are algorithms around - you might care to search the
archives on 'cache', especially postings by Ann Harrison and Bill
Karwin. Google search may yield something useful, also.

You might find some the following helpful: