Большое тестирование и 2GB транзакций
Привет всем.
Второго мая, в качестве предварительного забега, было запущено выполнение всех тестов. Последний раз такое делалось пару лет назад. С тех пор количество тестов увеличилось почти в семь раз (в основном за счет добавления комбинаций с использование UTF8), тестовая система стала более производительной, IBProvider — навороченным. В забеге использовался Firebird.
Скажу сразу — до финиша добежать не удалось, потому что тесты выжрали двух-гигабайтный лимит на количество транзакций. Проехало всего ~253 тысячи тестов.
[LCPI.IBProvider.3]: Ошибка старта транзакции.
Implementation limit exceeded
Transactions count exceeded. Perform backup and restore to make database operable again
Причина — наличие тестов с огромным количеством автоматических транзакций.
Однако общий результат — вполне удовлетворительный (в хорошем смысле этого слова).
Конфигурация
- IBProvider 3.16.0.15007 x64
- Firebird 2.5.3.26640 SuperClassic x64. Откомпилирован в VS2010 с полной оптимизацией кода. Модифицировано только ICU.
- OS: Vista x64
- Q6600 / 8GB / выделенный массив 4x1TB WD RE3 в RAID0 на RS2BL040
Тесты работали в 4 потока. Там где имело смысл, использовалась асинхронная загрузка результирующих множеств.
Состояние базы данных
Database "d:\database\IBP_TEST_FB25_D3_2.GDB"
Database header page information:
Flags 0
Checksum 12345
Generation 2147541412
Page size 8192
ODS version 11.2
Oldest transaction 2147483636
Oldest active 2147483637
Oldest snapshot 2147483550
Next transaction 2147483646
Bumped transaction 1
Sequence number 0
Next attachment ID 57764
Implementation ID 26
Shadow count 0
Page buffers 0
Next header page 0
Database dialect 3
Creation date May 2, 2013 22:44:45
Attributes
Variable header data:
*END*
Наработка часов
| Процесс | User Time | Kernel Time | Total Time |
|---|---|---|---|
| Firebird | 619:48:42 | 1214:53:12 | 1834:41:54 |
| Test System | 226:42:04 | 90:47:41 | 317:29:45 |
Скриншоты с подробным состоянием процессов

Информация о серверном процессе.

Ресурсы серверного процесса.

Информация о тестовом процессе.

Ресурсы тестового процесса.
Как видно из картинок — утечек нет. Что не может не радовать.
Хотя моя циничная сущность не может не напомнить, что сервер работал в «щадящем» режиме. Без пула подключений — серверная картинка будет другой.
Так что, если сравнивать с тем что было два года назад и у сервера и у провайдера (по гуманным соображениям, я не буду приводить здесь screenshot-ы предыдущего забега) — все очень и очень не плохо.
Тесты я уже поправил, так что в ближайшее время еще раз попробуем добежать до финиша. Хотя боюсь, что в этот раз сервер выжрет все место на разделе с тестовой базой и снова будет fail 🙂
Симонов Денис on 14 июня, 2013
Интересно много ли пройдёт interbase и firebird3