Ова страница је машински преведена. Прочитајте енглески оригинал. English

IBSurgeon библиотека

Кратка контролна листа за перформансе Firebird базе података

Windows

  1. Подесите план за уштеду енергије на високе перформансе (+20% на Windows Server 2016+)?

  2. Подесите Write-Caching Policy за дискове да омогућите Write-Caching

  3. У случају RAID-а, проверите да је инсталиран савремени драјвер и да је RAID правилно конфигурисан.

Linux

  1. Да ли је Max Open Files постављен на 49999? Проверите то cat /proc/$(pgrep firebird)/limits, подразумевано је 4096, повећајте ако је потребно: поставите у Firebird сервис датотеци LimitNOFILE=49999

  2. Проверите VMA count cat /proc/sys/vm/max_map_count, подразумевано је 64K, требало би да буде 250K: додајте у /etc/sysctl.conf линију vm.max_map_count=250000

Firebird конфигурација (препоруке само за Firebird 3)

  1. Уверите се да не користите подразумеване DefaultDBCacheBuffers, они су веома ниски (256 и 8K)! Поставите 1024 за SuperClassic и 100K за SuperServer. Немојте користити Classic у Firebird 3, он је спор.

  2. Уверите се да DefaultDBCacheBuffers није прегажен у заглављу базе података: проверите то са gstat -h database -> Page Buffers, требало би да буде 0. Поставите на 0 са gfix -buffers 0.

  3. Поставите FileSystemCacheThreshold =100M да бисте користили кеш датотечног система ОС-а

  4. За SuperServer, издвојите за DefaultDBCacheBuffers мање од 30% RAM-а. Ако имате много база података, израчунајте меморију за све њих и користите databases.conf да их конфигуришете одвојено. Проверите укупан број веза и база података командом:

fbsvcmgr.exe localhost:service_mgr user sysdba password masterkey info_svr_db_info

  1. За SuperServer и SuperClassic, поставите TempCacheLimit на 25% RAM-а, за Classic - 64M.

  2. Поставите LockMemSize=30M, то је добра почетна вредност, затим пратите раст табеле закључавања командом fblockprint -d databasename и повећајте LockMemSize ако је потребно

  3. Поставите LockHashSlots=20011, то је добра почетна вредност, пратите Hash Lengths у lockprint-у

База података

  1. За базе података > 50Gb, користите максималну величину странице: 16Kb (подразумевано 8Kb), да бисте оптимизовали читање IO и дубину индекса. Поставите то током рестаурације са прекидачем “page”: gbak**-c -page 16384**

  2. Немојте користити флаг no_reserve за базе података које нису само за читање. Уклоните га са **gfix -**use reserve

  3. Пратите разлику између маркера трансакција (OIT, OST, OAT, Next) из gstat -h.

  4. Велика (OST-OIT) значи да база података вероватно садржи много смећа верзија и захтева sweep. Закажите експлицитан sweep за ноћно време са gfix -sweep

  5. Велика (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 ради брже.