About 3"DefaultDbCachePages" in firebird.conf is used only at server start.
Then restart is needed. But you have 2 more options and you should check it
maybe you override default. Buffers you can set also in databases.conf and in
db file itself by gfix buffers.And it is used in priority.1. buffers set in db
by gfix if 0 then go to point 2.2. Setting in databases.conf if not present go
to point 3.3. Setting from firebird.confRegards,Karol Bieniaszewski
-------- Oryginalna wiadomość --------Od: "Kjell Rilbe
[email protected] [firebird-support]"
<[email protected]> Data: 08.03.2020 10:10 (GMT+01:00) Do:
[email protected] Temat: [firebird-support] Page buffers & cache
threshold
Hi,
Trying to figure out the best settings for my database and app usage.
Firebird 3.0.4 SuperServer on virtualized Windows Server 2016 with 40
Gbyte RAM and fast SSD disks (separate disks for OS and DB). Database
almost 200 Gbyte. Page size 16k.
We can assume that no other heavy work is running on the server. The app
itself uses a few Gbyte RAM.
I have set in databases.conf:
DefaultDbCachePages = 1310720
FileSystemCacheThreshold = 640K
And in firebird.conf:
FileSystemCacheSize = 50%
TempCacheLimit = 4G
MaxUnflushedWrites = 100
MaxUnflushedWriteTime = 60
All other settings (except some security ones) are set to default.
1. Would you recommend any changes to these settings, and why?
2. I see that the firebird.exe process has commit size about 2.2 Gbyte,
which seems small considering the DefaultDbCachePages = 1310720 setting.
Shouldn't this result in a page cache of 20 Gbyte?
3. I did change the DefaultDbCachePages setting without restarting the
superserver process, but I did make sure all connections to the database
in questions were closed. Does this setting take effect only when the
server process is restarted?
4. It's not clear to me how the FileSystemCacheThreshold setting
actually works. I have read the release notes for FB 2.5 as well as the
comments inside firebird.conf and a couple of support list messages. But
I still find it a bit muddy... I can see that the database file is
cached, using RAMMap.exe. It reports "Standby" as "28733844 K" for that
file.
It seems that the file system cache works and keeps large parts of the
database file in the cache, but I do realize that the batch will for the
most part need to read "new" data. The important thing ought to be to
keep the indexes in cache. Right?
Reason/background: The use case is a batch operation that will do mostly
(only?) reads and will read large parts of the database. The batch does
its job in "chunks", and I can see that after a while the time to
process each chunk goes up from about half a minute to about a full
minute, or even worse. Restarting the app makes it go back to about half
a minute per chunk, but just stopping the batch operation (without
restarting the app) doesn't seem to help. I will investigate this more,
of course. It's possible that the app has some garbage piling up that
might slow things down.
Mvh,
Kjell
Kjell Rilbe
Telefon: 0733-44 24 64
Marknadsinformation i Sverige AB
Sundbybergs Torg 1 H 7 tr
172 67 Sundbyberg, Sweden
www.marknadsinformation.se <http://www.marknadsinformation.se/>
08-514 905 90
Företagskontakt.se <http://www.f%C3%B6retagskontakt.se/>
Personkontakt.se <http://www.personkontakt.se/> DI Gasell 2018DI Gasell
2019
[Non-text portions of this message have been removed]