Нагрузочное тестирование IBProvider v3.52.1 и Firebird v3.0.4. Завершено на 100%
Нам впервые удалось выполнить все системные тесты IBProvider, применимые к Firebird v3, за один заход. Для этого потребовалось 26 дней и десятиядерный процессор.
Наше мнение
По большому счету это было нагрузочное тестирование не сколько IBProvider, а Firebird и оборудования.
Если принять во внимание результаты предыдущих попыток, мы можем дать два простых совета всем, кто использует Firebird v3 для промышленных решений:
- Используйте 64-битный выделенный сервер.
- Следите за наличием свободного места на разделе с базой данных.
Пользователям IBProvider мы продолжаем советовать подключаться к Firebird через собственный клиент провайдера. Для этого нужно указать в строке подключения «dbclient_type=fb.direct».
Тестовое окружение
Оборудование
- Intel 6950X (10C/10T)
- RAM: 128GB 2400MHz
- Database and TMP Storage: RAM Disk (80GB)
- System Drive: SSD
- OS: Windows 10 x64 Pro (1709)
Программные компоненты
- IBProvider v3.52.1.28912 x64 (VS2017)
- LCPI OLE DB Services v1.5.1.540 x64 (VS2017)
- Firebird v3.0.4.33047 x64 SuperServer (VS2015)
База данных
- Третий диалект
- Размер страницы: 16KB
Каждый час запускалась принудительная сборка мусора в базе данных.
Тесты
Исходный код тестовой системы находятся в каталоге:
Результаты тестирования
Основные сведения из лога тестовой системы
Process ID: 3820 [TEST HEAP] Initialize ... OK [10.09.2018 09:06:15] [ExecuteTests] CommandLine: target\ibp_oledb_test_vc15_x64_Release.exe /thread_count 10 /log_file_prefix fb30_fb.direct_ram_w64_d3 /log_dir ..\_log\all\ /new_db_location "inet4://localhost/d:\database\ram\" /cn_str "provider=LCPI.IBProvider.3.Private.vc15.release;location=inet4://localhost/d:\database\ram\ibp_test_fb30_d3_all.gdb;user id=GAMER;password=vermut;ctype=win1251;temp_file_dir=d:\database\ram\temp;dbclient_type=fb.direct;icu_library=icuuc52.dll;wchars_in_utf8_symbol=2" /oledb_svc_cmp "LCPI.OleDbServices.DataInitManager.Local.1.Private.vc15.release" /test * [10.09.2018 09:06:15] [ExecuteTests] Test Mask : [*] [10.09.2018 09:06:15] [info] Provider DLL :lcpi.ibprovider_v3_vc15_w64_prof_i.dll [10.09.2018 09:06:15] [info] Provider Version:3.52.1.28912 [10.09.2018 09:06:15] [info] Server Name :Firebird [10.09.2018 09:06:15] [info] Server Version :3.0.4.33047 [10.09.2018 09:06:15] [info] Client Name :LCPI.IBProvider.RemoteFB [10.09.2018 09:06:15] [info] Client Version :3.52.1.28912 [10.09.2018 09:06:15] [info] Database ODS :12.0 [10.09.2018 09:06:15] [info] Database Dialect:3 [10.09.2018 09:06:15] [info] ConnectionString: provider=LCPI.IBProvider.3.Private.vc15.release;location=inet4://localhost/d:\database\ram\ibp_test_fb30_d3_all.gdb;user id=GAMER;password=vermut;ctype=win1251;temp_file_dir=d:\database\ram\temp;dbclient_type=fb.direct;icu_library=icuuc52.dll;wchars_in_utf8_symbol=2 [10.09.2018 09:06:15] [ExecuteTests] [10.09.2018 09:06:15] [ExecuteTests] Enter [cancel] for interrupt execution [10.09.2018 09:06:15] [ExecuteTests] [10.09.2018 09:06:15] Creation 10 thread(s)... ...... [06.10.2018 22:58:29] [summary] ------------------------------------------- [SUMMARY INFORMATION] [06.10.2018 22:58:29] [summary] [TESTS] [06.10.2018 22:58:29] [summary] EXECUTED : 7049700 [06.10.2018 22:58:29] [summary] SUCCEEDED : 7049644 [06.10.2018 22:58:29] [summary] FAILED : 0 [06.10.2018 22:58:29] [summary] WITH WARNINGS : 56 [ 80 warning(s) ] [06.10.2018 22:58:29] [summary] [06.10.2018 22:58:29] [summary] - - - - - - - - - - - - - - - - - - - - - - [06.10.2018 22:58:29] [summary] [TEST TIMES] [06.10.2018 22:58:29] [summary] REAL : 227578381250288 [263 day(s)09:37:18.1250288] [06.10.2018 22:58:29] [summary] USER : 27392280625000 [31 day(s)16:53:48.0625000] [06.10.2018 22:58:29] [summary] KERNEL : 14525038593750 [16 day(s)19:28:23.8593750] [06.10.2018 22:58:29] [summary] TOTAL : 41917319218750 [48 day(s)12:22:11.9218750] [06.10.2018 22:58:30] [06.10.2018 22:58:30] [TEST HEAP] Test heap is empty [06.10.2018 22:58:30] [TEST HEAP] Validate ... OK [06.10.2018 22:58:30] [TEST HEAP] Destroy ... OK [06.10.2018 22:58:30] [06.10.2018 22:58:30] [summary] ------------------------------------------- [PROCESS INFORMATION] [06.10.2018 22:58:30] [summary] [VIRTUAL MEMORY] [06.10.2018 22:58:30] [summary] [06.10.2018 22:58:30] [summary] PRIVATE BYTES : 13876 KB [13MB 564KB] [06.10.2018 22:58:30] [summary] PEAK PRIVATE BYTES : 12976404 KB [12GB 384MB 276KB] [06.10.2018 22:58:30] [summary] VIRTUAL SIZE : 187184 KB [182MB 816KB] [06.10.2018 22:58:30] [summary] PAGE FAULT COUNT : 1658089969 [06.10.2018 22:58:30] [summary] [06.10.2018 22:58:30] [summary] - - - - - - - - - - - - - - - - - - - - - - [06.10.2018 22:58:30] [summary] [HANDLES] [06.10.2018 22:58:30] [summary] [06.10.2018 22:58:30] [summary] HANDLES : 158 [06.10.2018 22:58:30] [summary] [06.10.2018 22:58:30] [summary] - - - - - - - - - - - - - - - - - - - - - - [06.10.2018 22:58:30] [summary] TOTAL ERRORS : 0 [06.10.2018 22:58:30] [summary] TOTAL WARNINGS: 80 [06.10.2018 22:58:30] [summary] FULL PASSES : 1 [06.10.2018 22:58:30] [summary] GEN TESTS : 8295133
Состояние базы данных
Database header page information: Flags 0 Generation 62840501 System Change Number 0 Page size 16384 ODS version 12.0 Oldest transaction 62827202 Oldest active 62827203 Oldest snapshot 62827203 Next transaction 62827203 Sequence number 0 Next attachment ID 136634 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 Sep 10, 2018 8:54:47 Attributes Variable header data: *END*
Результат проверки базы данных:
HOME4 Mon Oct 8 09:08:27 2018 Database: D:\DATABASE\RAM\IBP_TEST_FB30_D3_ALL.GDB Validation started HOME4 Mon Oct 8 09:08:30 2018 Database: D:\DATABASE\RAM\IBP_TEST_FB30_D3_ALL.GDB Warning: Page 260 is an orphan .... HOME4 Mon Oct 8 09:08:40 2018 Database: D:\DATABASE\RAM\IBP_TEST_FB30_D3_ALL.GDB Warning: Page 112395 is an orphan HOME4 Mon Oct 8 09:08:40 2018 Database: D:\DATABASE\RAM\IBP_TEST_FB30_D3_ALL.GDB Validation finished: 0 errors, 2184 warnings, 2184 fixed
Сведения о состоянии тестового процесса
Сведения о состоянии процесса Firebird
В итоге
Здесь можно, конечно, снова написать про надежность IBProvider и про круглосуточно работающие высоконагруженные системы.
Но мы напишем про другое.
В целом, этот эксперимент достаточно дорогостоящий. И дело даже не только в стоимости HEDT системы, на которой он проводился. Но и в сопутствующих затратах.
Все это было оплачено пользователями IBProvider, купившими лицензии.
Если Вам тоже интересно увидеть, чем все в конце концов закончится, присоединяйтесь к ним.
И Вы будете в числе тех, кому мы говорим СПАСИБО за то, что даете нам возможность заниматься лучшей работой на свете.