Нагрузочное тестирование IBProvider v3.50 и Firebird v3.0.4
В данной заметке мы хотим сообщить о прогоне 6.7 млн разных тестов для блобов. Это относительно большое тестирование. Обычно каждое обновление IBProvider проходит через ~0.7 млн тестов.
Если эти 6.7 млн тестов выполнять в один поток, то они бы работали 150 дня. Параллельное выполнение в десять потоков, сократило это время до 15 дней.
Мы не будем утомлять вас подробностями. Просто приведем ключевые сведения.
Оборудование
- Intel 6950x
- RAM: 128GB
- Storage: RAM Disk
- Windows 10 Pro x64
Тестируемые компоненты
- IBProvider v3.50.0.28657, x64, vc15 (VS2017).
- Firebird v3.0.4.32972, x64, SuperServer, VS2015.
Применялось прямое (без fbclient.dll) подключение к серверу через TCP/IP (localhost).
Пул подключений обслуживался компонентами «LCPI OLE DB Services».
База данных
- Диалект: 3.
- Размер страницы: 16KB.
Тесты
Стратегия: Bounded Exhaustive Testing.
Проверялась работа с текстовыми блобами. В том числе и с ICU-кодировками.
Во время работы тестов один раз запускалась принудительная сборка мусора в базе данных. Без приостановки тестов.
Результаты
Выявлено 20 тестов, которые нужно обновить.
Тесты наработали 504 часа «CPU User Time» (21 день). По ресурсам (память, дескрипторы) – все в норме, без утечек (логи).
Сервер, в общей сложности, наработал 1221 часа «CPU User Time» (50 дней). Состояние сервера перед запуском тестов. Состояние сервера после завершения тестов:
Размер базы: 57.4GB. Принудительная сборка мусора помогла остановить её рост. Статистика базы данных:
Database "D:\DATABASE\RAM\IBP_TEST_FB30_D3_2.GDB"
Gstat execution time Sun Jun 3 19:44:51 2018
Database header page information:
Flags 0
Generation 20148796
System Change Number 0
Page size 16384
ODS version 12.2
Oldest transaction 20147092
Oldest active 20147093
Oldest snapshot 20145317
Next transaction 20147100
Sequence number 0
Next attachment ID 27215
Implementation HW=AMD/Intel/x64 little-endian OS=Windows CC=MSVC
Shadow count 0
Page buffers 0
Next header page 0
Database dialect 3
Creation date Apr 18, 2018 23:07:38
Attributes
Variable header data:
*END*
Gstat completion time Sun Jun 3 19:44:51 2018
Дополнительно
Загрузка системы в процессе работы.
Выводы
Проведенное тестирование подтверждает следующие ключевые характеристики IBProvider v3.50:
- Согласованное взаимодействие с сервером баз данных Firebird.
- Качественная реализация алгоритмов и механизмов.
- Стабильная работа под предельной многопоточной нагрузкой.
Кроме того, проведенное тестирование можно считать предварительным подтверждением стабильности следующего обновления FB3 – v3.0.4.
