Есть БД под управлением FireBird 2.5.2 Superserver 64 bit на WIN 2008 R2 , живущая на виртуальной машине в дата-центре, с выделенной мощностью CPU: Intel Xeon E70L8867 @ 2.13GHz 2 ядра , ОЗУ 4 ГБ (swap 4Гб), 4 диска: 1 для системы, 2 - swap, 3 - БД и приложение работающее с ней , 4 - бекапы БД.
Приложение, которое работает с БД, вызывает высокую нагрузку на диск от 800 до 1100 IOPS (что вызывает задержку записи в БД, в следствии чего пользователи не получают инфу на рабочие места), при этом размер базы не больше 10Гб (при достижении порога производится миграция, периодически производится бекап/рестор), количество одновременных подключенных пользователей, которые производят чтение не более 20, кол-во одновременных потоков на запись ~200, а аналогичное приложение, но работающее на СУБД MS SQL, нагружает диск на 200-350 IOPS.
После изменения размера страницы базы FB с 4096 на 16384, кол-во обращений к диску удалось снизить до 600 IOPS (средняя длинна очереди диска 0,5), однако периодически возникают пики до 800 обращений. Файл конфигурации оставлен по умолчанию:
Код: Выделить всё
DefaultDbCachePages = 2048
FileSystemCacheThreshold = 65536
FileSystemCacheSize = 0
TempBlockSize = 1048576
TempCacheLimit = 67108864
LockMemSize = 1048576
LockHashSlots = 1009
EventMemSize = 65536
CpuAffinityMask = 1
Результат выполнения команды gstat -h
Код: Выделить всё
Database header page information:
Flags 0
Checksum 12345
Generation 12719319
Page size 16384
ODS version 11.2
Oldest transaction 12719296
Oldest active 12719297
Oldest snapshot 12719297
Next transaction 12719299
Bumped transaction 1
Sequence number 0
Next attachment ID 843
Implementation ID 26
Shadow count 0
Page buffers 0
Next header page 0
Database dialect 3
Creation date Jun 28, 2014 10:23:25
Attributes force write
Variable header data:
Sweep interval: 20000
Заранее Спасибо.