Большое тестирование и 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