Кратка контролна листа за перформансе Firebird базе података
Windows
-
Подесите план за уштеду енергије на високе перформансе (+20% на Windows Server 2016+)?
-
Подесите Write-Caching Policy за дискове да омогућите Write-Caching
-
У случају RAID-а, проверите да је инсталиран савремени драјвер и да је RAID правилно конфигурисан.
Linux
-
Да ли је Max Open Files постављен на 49999? Проверите то cat /proc/$(pgrep firebird)/limits, подразумевано је 4096, повећајте ако је потребно: поставите у Firebird сервис датотеци LimitNOFILE=49999
-
Проверите VMA count cat /proc/sys/vm/max_map_count, подразумевано је 64K, требало би да буде 250K: додајте у /etc/sysctl.conf линију vm.max_map_count=250000
Firebird конфигурација (препоруке само за Firebird 3)
-
Уверите се да не користите подразумеване DefaultDBCacheBuffers, они су веома ниски (256 и 8K)! Поставите 1024 за SuperClassic и 100K за SuperServer. Немојте користити Classic у Firebird 3, он је спор.
-
Уверите се да DefaultDBCacheBuffers није прегажен у заглављу базе података: проверите то са gstat -h database -> Page Buffers, требало би да буде 0. Поставите на 0 са gfix -buffers 0.
-
Поставите FileSystemCacheThreshold =100M да бисте користили кеш датотечног система ОС-а
-
За SuperServer, издвојите за DefaultDBCacheBuffers мање од 30% RAM-а. Ако имате много база података, израчунајте меморију за све њих и користите databases.conf да их конфигуришете одвојено. Проверите укупан број веза и база података командом:
fbsvcmgr.exe localhost:service_mgr user sysdba password masterkey info_svr_db_info
-
За SuperServer и SuperClassic, поставите TempCacheLimit на 25% RAM-а, за Classic - 64M.
-
Поставите LockMemSize=30M, то је добра почетна вредност, затим пратите раст табеле закључавања командом fblockprint -d databasename и повећајте LockMemSize ако је потребно
-
Поставите LockHashSlots=20011, то је добра почетна вредност, пратите Hash Lengths у lockprint-у
База података
-
За базе података > 50Gb, користите максималну величину странице: 16Kb (подразумевано 8Kb), да бисте оптимизовали читање IO и дубину индекса. Поставите то током рестаурације са прекидачем “page”: gbak**-c -page 16384**
-
Немојте користити флаг no_reserve за базе података које нису само за читање. Уклоните га са **gfix -**use reserve
-
Пратите разлику између маркера трансакција (OIT, OST, OAT, Next) из gstat -h.
-
Велика (OST-OIT) значи да база података вероватно садржи много смећа верзија и захтева sweep. Закажите експлицитан sweep за ноћно време са gfix -sweep
-
Велика (Next-OAT) значи дуга активна уписна трансакција која блокира сакупљање смећа. Проверите MON$ табеле да видите која апликација држи трансакцију отвореном и поправите то.
5-минутни тест за процену Firebird перформанси
Користите open-source INSERT-UPDATE_DELETE скрипту: www.ib-aid.com/dbtestТренутно, најбржи тестирани сервер је показао 18140 уметнутих записа у секунди, који ће бити ваш резултат?
Како побољшати Firebird перформансе даље од овог једноставног подешавања?
Пробајте IBSurgeon-ову услугу оптимизације Firebird-а www.ib-aid.com/perf: знамо како да учинимо да ваш Firebird ради брже.