7 апр. 2017 г.

Большой размер кэша в Firebird 3.0

Сам уже дважды прокололся, поэтому хочу предупредить всех. 2.5 мы используем в режиме Classic и размер кэша не велик. Обычно 2000 страниц. С 3.0 основная идея -- это гигантский кэш, соизмеримый с размером БД, и значительный буфер под сортировку в ОЗУ. Например, при размере памяти сервера 128 Гб мы рекомендуем кэш 64 Гб и 32 Гб под буфер сортировки.

Пока активная база одна, проблем не возникает. Но, при попытке открыть вторую базу (например, чтобы свериться с архивом или испытать экспериментальные функции на тестовой копии), оперативной памяти сервера не хватит на размещение двух кэшей и начнется своппинг в файл подкачки. Производительность сервера драматически снизится.

В таком случае следует уменьшить буфер одной из баз данных с помощью утилиты командной строки:

gfix database_name -user SYSDBA -password sysdba_password -buffers 2000