Subject Re: [firebird-support] Firebird using all available memory
Author Fabiano Bonin
> Perhaps Debian is trying to put in cache your database file and this file cache is competing for the available memory with the page cache of Firebird.

root@debian:~# ps -p 509 -o %cpu,%mem,cmd
%CPU %MEM CMD
93.3 69.8 /opt/firebird/bin/firebird

root@debian:~# free -h
total used free shared buff/cache available
Mem: 7.8G 5.5G 2.0G 19M 273M 2.0G
Swap: 0B 0B 0B

Firebird is using 69.8% of the available memory. OS cache is using
273MB, so I don't think this is the case.
I tried to read the descriptions of FileSystemCacheSize and
FileSystemCacheThreshold parameters, but i didn't get what they do
exactly.
Anyway, it says FileSystemCacheThreshold is used just on Windows OS
and FileSystemCacheSize also depends of FileSystemCacheThreshold .

In this server, I am using 25% of the available RAM to
DefaultDbCachePages and 12.5% to TempCacheLimit.

DefaultDbCachePages = 524288
TempCacheLimit = 1024M

My database uses 4k page size, so 524,288 pages * 4k = 2,097,152 (2GB)

So 2GB for DefaultDbCachePages and 1GB for TempCacheLimit, with a 3GB
total alocated memory.

But as you can see above, currently it is using 5.5GB, and usually it
is growing up to the memory limit and overflowing...
I would expect that using the configuration above the memory use would
be around 3GB, but again, I can be mistaked about how firebird uses
the memory.
Maybe these settings affects just the shared memory and each
connection also uses some private memory...
I just want to understand what is going on to be able to calculate how
my settings will affect memory use and to prevent overflows...

I tried to see the memory use per thread, and currently there are 2
threads using a bunch of memory (numbers are in KB).
I am not skilled enough to analyze what these numbers are saying tough.

Address Kbytes RSS Dirty Mode Mapping
...
00007fa143f3d000 2423564 2423524 2423524 rw--- [ anon ]
00007fa1e7d57000 4517776 324472 324472 rw--- [ anon ]
...
---------------- ------- ------- -------
total kB 13417556 5700308 5682240

Regards,

Fabiano

>
>
> In Firebird 2.5(unfortunately I don't know Firebird 3) the parameters to control the comsuption of memory for the file cache are:
>
> FileSystemCacheSize
> FileSystemCacheThreshold
>
>
> On Thursday, May 24, 2018, 8:30:09 AM CDT, Fabiano Bonin fabiano.bonin@... [firebird-support] <firebird-support@yahoogroups.com> wrote:
>
>
>
>
> Hi, Omacht!
>
> Indeed, it needs a sweep.
>
> There a scheduled script that runs every night to sweep the database, and it broke with FB3 upgrade.
>
> I fixed the script and it will run this night.
>
> But, do you think the memory exaustion can be related to this issue?
>
> Regards,
>
> Fabiano
>
>
>
>
> 2018-05-24 2:47 GMT-03:00 Omacht András aomacht@... [firebird-support] <firebird-support@yahoogroups.com>:
>
>
>
> Hi Fabiano!
>
> You should run garbage collection (sweep).
>
>
> Oldest transaction 905
> Oldest active 62303005
> Oldest snapshot 62303005
> Next transaction 62382577
> András
>
> OMACHT ANDRÁS
> fejlesztési igazgató
>
> [cid:image001.png@01CFE703. C881C660]
> Libra Szoftver Zrt.
> 1113 Budapest, Karolina út 65.
> Tel.: +36 1 255 3939
> Fax: +36 1 209 1477
> http://www.libraszoftver.hu<ht tp://www.libraszoftver.hu/>
>
> From: firebird-support@yahoogroups. com [mailto:firebird-support@ yahoogroups..com]
> Sent: Wednesday, May 23, 2018 4:29 PM
> To: firebird-support@yahoogroups. com
> Subject: Re: [firebird-support] Firebird using all available memory
>
>
> Hi, Thomas. It is zero. I presume in this case it uses the system default, right?
>
> Regards,
>
> Fabiano
>
> Database header page information:
> Flags 0
> Generation 62390727
> System Change Number 0
> Page size 4096
> ODS version 12.0
> Oldest transaction 905
> Oldest active 62303005
> Oldest snapshot 62303005
> Next transaction 62382577
> Sequence number 0
> Next attachment ID 1290314
> Implementation HW=AMD/Intel/x64 little-endian OS=Linux CC=gcc
> Shadow count 0
> Page buffers 0
> Next header page 0
> Database dialect 3
> Creation date Apr 4, 2018 7:03:44
> Attributes force write
>
>
> [A képet a feladó eltávolította.]
>
> 2018-05-22 18:30 GMT-03:00 'Thomas Kragh-Pedersen (TKG)' TKG@...<mailto:TKG@...> [firebird-support] <firebird-support@yahoogroups. com<mailto:firebird-support@ yahoogroups.com>>:
>
> Hey Fabiano
> Perhaps DefaultDbCachePages is overwritten by database header information. Gstat -h will tell you that. Look for “Page buffers”
>
>
> From: firebird-support@yahoogroups. com<mailto:firebird-support@ yahoogroups.com> <firebird-support@yahoogroups. com<mailto:firebird-support@ yahoogroups.com>>
> Sent: 18. maj 2018 16:12
> To: firebird-support@yahoogroups. com<mailto:firebird-support@ yahoogroups..com>
> Subject: [firebird-support] Firebird using all available memory
>
>
> Hi,
>
> I have a Debian 9 Linux server with 8GB of memory, a database with 30GB, page size 4KB, and Firebird 3.0.3 running in superserver mode and about 150-200 concurrent connections.
>
> In my firebird.conf I have changed the following properties:
>
> DefaultDbCachePages = 524288 # 2GB
> TempCacheLimit = 1024M # 1GB
> LockMemSize = 2M
>
> As superserver uses a shared cache, I presumed the total used memory should stay between 3GB and 4GB, but it keeps growing during the day until it reaches the 8GB limit and Firebird shuts down with this message:
>
> debian Fri May 18 10:45:35 2018
> Shutting down the server with 150 active connection(s) to 2 database(s), 0 active service(s)
>
> I am checking the active transactions during the day, and altought there are some old (2h to 3h) active transactions, I don't that an old active transaction should cause this, but I am reporting anyway, maybe it is relevant.
>
> Do someone have some advice to what should I do to prevent this from happening?
>
> Maybe my understanding about how Firebird uses memory is incorrect, so any advice about how I should calculate the required amount of memory needed is welcome.
>
> PS: I have migrated from FB 2.5 recently (previously I did use superclassic mode), and these problems started after the migration.
>
> Regards,
>
> Fabiano
>
> Vi gør opmærksom på, at denne e-mail kan indeholde fortrolig information. Hvis du ved en fejltagelse modtager e-mailen, beder vi dig venligst informere afsender om fejlen ved at bruge svarfunktionen. Samtidig beder vi dig slette e-mailen i dit system uden at videresende eller kopiere den. Selvom e-mailen og ethvert vedhæftet bilag efter vores overbevisning er fri for virus og andre fejl, som kan påvirke computeren eller it-systemet, hvori den modtages og læses, åbnes den på modtagerens eget ansvar. Vi påtager os ikke noget ansvar for tab og skade, som er opstået i forbindelse med at modtage og bruge e-mailen.
>
> Please note that this message may contain confidential information. If you have received this message by mistake, please inform the sender of the mistake by sending a reply, then delete the message from your system without making, distributing or retaining any copies of it. Although we believe that the message and any attachments are free from viruses and other errors that might affect the computer or it-system where it is received and read, the recipient opens the message at his or her own risk. We assume no responsibility for any loss or damage arising from the receipt or use of this message....
>
>
>
>
> __________ Information from ESET Mail Security, version of virus signature database 17432 (20180523) __________
>
> The message was checked by ESET Mail Security.
> http://www.eset.com
>
> [Non-text portions of this message have been removed]
>
>
>