Нагрузочное тестирование 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.