Дата публикации: 10.10.2018

Нагрузочное тестирование IBProvider v3.52.1 и Firebird v3.0.4. Завершено на 100%

Нам впервые удалось выполнить все системные тесты IBProvider, применимые к Firebird v3, за один заход. Для этого потребовалось 26 дней и десятиядерный процессор.

Наше мнение

По большому счету это было нагрузочное тестирование не сколько IBProvider, а Firebird и оборудования.

Если принять во внимание результаты предыдущих попыток, мы можем дать два простых совета всем, кто использует Firebird v3 для промышленных решений:

  1. Используйте 64-битный выделенный сервер.
  2. Следите за наличием свободного места на разделе с базой данных.

Пользователям 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

Каждый час запускалась принудительная сборка мусора в базе данных.

Тесты

Исходный код тестовой системы находятся в каталоге:

c:\Program Files\LCPI\IBProvider.3\TestCode\ActiveX\IBP\oledb_test

Результаты тестирования

Основные сведения из лога тестовой системы

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*
Database File Properties

Результат проверки базы данных:

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

Сведения о состоянии тестового процесса

Database File Properties

Сведения о состоянии процесса Firebird

Database File Properties
Database File Properties

В итоге

Здесь можно, конечно, снова написать про надежность IBProvider и про круглосуточно работающие высоконагруженные системы.

Но мы напишем про другое.

В целом, этот эксперимент достаточно дорогостоящий. И дело даже не только в стоимости HEDT системы, на которой он проводился. Но и сопутствующих затратах.

Все это было оплачено пользователями IBProvider, купившими лицензии.

Если Вам тоже интересно увидеть, чем все в конце концов закончится, присоединяйтесь к ним.

И Вы будете в числе тех, кому мы говорим СПАСИБО за то, что даете нам возможность заниматься «лучшей работой на свете».


Дата публикации: 10.10.2018. Права на материал принадлежат: IBProvider. При перепечатке ссылка на сайт https://www.ibprovider.com/rus обязательна.