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

Привет всем.

После устранения проблемы с утечкой памяти в провайдере было проведено повторное тестирование всех любимых наборов тестов. К этому мероприятию был привлечен обновленный FB 2.5.2.26488 (x64, SuperClassic). Из модификаций в сервере — только изменения исправления в ICU. В пятницу (25 мая) в 16:20 начали тестирование, сегодня в 8:40 закончили. Краткий итог — «Господа, это победа!» 🙂

Наибольший интерес, на мой взгляд, представляют собой результаты прогона тестов c участием ICU. Вот результаты предпоследнего прогона в феврале этого года:

[23.02.2012 08:34:49] [ExecuteTests] Test Mask  : [blob*large*]

[23.02.2012 08:34:49] [info] Provider DLL    :_IBProvider_v3_vc10_w64_i.dll
[23.02.2012 08:34:49] [info] Provider Version:3.10.0.13123
[23.02.2012 08:34:49] [info] Server Name     :Firebird
[23.02.2012 08:34:49] [info] Server Version  :2.5.2.26424
[23.02.2012 08:34:49] [info] Client Name     :Firebird SQL Server
[23.02.2012 08:34:49] [info] Client Version  :2.5.2.26424
[23.02.2012 08:34:49] [info] Database ODS    :11.2
[23.02.2012 08:34:49] [info] Database Dialect:3
.......
[23.02.2012 08:34:49] [ExecuteTests] 
[23.02.2012 08:34:49] [ExecuteTests] Enter [cancel] for interrupt execution
[23.02.2012 08:34:49] [ExecuteTests] 
[23.02.2012 08:34:55] Creation 8 thread(s)...
.......
[25.02.2012 07:06:13] [summary] ----- [SUMMARY INFORMATION]
[25.02.2012 07:06:13] [summary] [TESTS]
[25.02.2012 07:06:13] [summary] TOTAL         : 2634672
[25.02.2012 07:06:13] [summary] SUCCEEDED     : 2634672
[25.02.2012 07:06:13] [summary] FAILED        : 0
[25.02.2012 07:06:13] [summary] WITH WARNINGS : 0
[25.02.2012 07:06:13] [summary] 
[25.02.2012 07:06:13] [summary] - - - - - - - - - - - - - - - - - - - - - -
[25.02.2012 07:06:13] [summary] [TEST TIMES]
[25.02.2012 07:06:13] [summary] REAL   : 12361677400000 [14 day(s)07:22:47.7400000]
[25.02.2012 07:06:13] [summary] USER   : 1883799903563 [2 day(s)04:19:39.9903563]
[25.02.2012 07:06:13] [summary] KERNEL : 273836199349  [07:36:23.6199349]
[25.02.2012 07:06:13] [summary] TOTAL  : 2157636102912 [2 day(s)11:56:03.6102912]
[25.02.2012 07:06:15] 
[25.02.2012 07:06:15] [TEST HEAP] Test heap is empty
[25.02.2012 07:06:15] [TEST HEAP] Validate ... OK
[25.02.2012 07:06:15] [TEST HEAP] Destroy ... OK
[25.02.2012 07:06:15] 
[25.02.2012 07:06:15] [summary] ------ [PROCESS INFORMATION]
[25.02.2012 07:06:15] [summary] [VIRTUAL MEMORY]
[25.02.2012 07:06:15] [summary] 
[25.02.2012 07:06:15] [summary] PRIVATE BYTES      : 4254664 KB [4GB 58MB 968KB]
[25.02.2012 07:06:15] [summary] PEAK PRIVATE BYTES : 4409396 KB [4GB 210MB 52KB]
[25.02.2012 07:06:15] [summary] VIRTUAL SIZE       : 5297112 KB [5GB 52MB 984KB]
[25.02.2012 07:06:15] [summary] PAGE FAULT COUNT   : 1112917613
[25.02.2012 07:06:15] [summary] 
[25.02.2012 07:06:15] [summary] - - - - - - - - - - - - - - - - - - - - - -
[25.02.2012 07:06:15] [summary] [HANDLES]
[25.02.2012 07:06:15] [summary] 
[25.02.2012 07:06:15] [summary] HANDLES            : 120
[25.02.2012 07:06:15] [summary] 
[25.02.2012 07:06:15] [summary] - - - - - - - - - - - - - - - - - - - - - -
[25.02.2012 07:06:15] [summary] TOTAL ERRORS  : 0
[25.02.2012 07:06:15] [summary] TOTAL WARNINGS: 0
[25.02.2012 07:06:15] [summary] FULL PASSES   : 1

С точки зрения контроля ресурсов, здесь интересны два пункта:
PRIVATE BYTES. Это занятая память которая осталась висеть после завершения всех тестов и выгрузки провайдера.
HANDLES. Это количество незакрытых дескрипторов системных ресурсов.

Обнулиться эти показатели не могут, поскольку сам процесс еще не завершен. Это он сам их и получает 🙂

А вот что у нас имеется со сборкой 13170:

[29.05.2012 07:58:16] [ExecuteTests] Test Mask  : [blob*large*]

[29.05.2012 07:58:16] [info] Provider DLL    :_IBProvider_v3_vc10_w64_i.dll
[29.05.2012 07:58:16] [info] Provider Version:3.11.0.13170
[29.05.2012 07:58:16] [info] Server Name     :Firebird
[29.05.2012 07:58:16] [info] Server Version  :2.5.2.26488
[29.05.2012 07:58:16] [info] Client Name     :Firebird SQL Server
[29.05.2012 07:58:16] [info] Client Version  :2.5.2.26488
[29.05.2012 07:58:16] [info] Database ODS    :11.2
[29.05.2012 07:58:16] [info] Database Dialect:3
.........
[29.05.2012 07:58:16] [ExecuteTests] 
[29.05.2012 07:58:16] [ExecuteTests] Enter [cancel] for interrupt execution
[29.05.2012 07:58:16] [ExecuteTests] 
[29.05.2012 07:58:22] Creation 8 thread(s)...
.........
[31.05.2012 08:41:53] [summary] ----- [SUMMARY INFORMATION]
[31.05.2012 08:41:53] [summary] [TESTS]
[31.05.2012 08:41:53] [summary] TOTAL         : 2634672
[31.05.2012 08:41:53] [summary] SUCCEEDED     : 2634672
[31.05.2012 08:41:53] [summary] FAILED        : 0
[31.05.2012 08:41:53] [summary] WITH WARNINGS : 0
[31.05.2012 08:41:53] [summary] 
[31.05.2012 08:41:53] [summary] - - - - - - - - - - - - - - - - - - - - - -
[31.05.2012 08:41:53] [summary] [TEST TIMES]
[31.05.2012 08:41:53] [summary] REAL   : 12629240670000 [14 day(s)14:48:44.0670000]
[31.05.2012 08:41:53] [summary] USER   : 1815331688667 [2 day(s)02:25:33.1688667]
[31.05.2012 08:41:53] [summary] KERNEL : 270277192535  [07:30:27.7192535]
[31.05.2012 08:41:53] [summary] TOTAL  : 2085608881202 [2 day(s)09:56:00.8881202]
[31.05.2012 08:41:54] 
[31.05.2012 08:41:54] [TEST HEAP] Test heap is empty
[31.05.2012 08:41:54] [TEST HEAP] Validate ... OK
[31.05.2012 08:41:54] [TEST HEAP] Destroy ... OK
[31.05.2012 08:41:54] 
[31.05.2012 08:41:54] [summary] ----- [PROCESS INFORMATION]
[31.05.2012 08:41:54] [summary] [VIRTUAL MEMORY]
[31.05.2012 08:41:54] [summary] 
[31.05.2012 08:41:54] [summary] PRIVATE BYTES      : 33592 KB  [32MB 824KB]
[31.05.2012 08:41:54] [summary] PEAK PRIVATE BYTES : 208760 KB [203MB 888KB]
[31.05.2012 08:41:54] [summary] VIRTUAL SIZE       : 131856 KB [128MB 784KB]
[31.05.2012 08:41:54] [summary] PAGE FAULT COUNT   : 1103740197
[31.05.2012 08:41:54] [summary] 
[31.05.2012 08:41:54] [summary] - - - - - - - - - - - - - - - - - - - - - -
[31.05.2012 08:41:54] [summary] [HANDLES]
[31.05.2012 08:41:54] [summary] 
[31.05.2012 08:41:54] [summary] HANDLES            : 120
[31.05.2012 08:41:54] [summary] 
[31.05.2012 08:41:54] [summary] - - - - - - - - - - - - - - - - - - - - - -
[31.05.2012 08:41:54] [summary] TOTAL ERRORS  : 0
[31.05.2012 08:41:54] [summary] TOTAL WARNINGS: 0
[31.05.2012 08:41:54] [summary] FULL PASSES   : 1

Как говорится — результат на лице. Было 4GB на выходе, стало 32MB на выходе. Понятно, что память текла как провайдере так и в самих тестах.

Немного картинок из Process Explorer’a, связанных с состоянием этого тестового процесса:



Сведения о тестовом процессе.



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

Не знаю кому как — а мне нравятся эти цифры и картинки 🙂

Что там у нас с сервером?
Помимо этих 2.5MB тестов, которые целенаправленно мучали текстовые блобы, через сервер (SuperClassic) были пропущены еще порядка килотонны 1MB разношерстных тестов. И вот что у нас имеется на выходе, когда все отключились от сервера:



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



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

Я не «фотографировал» промежуточные состояния сервера (на текущий момент, это не интересно) между запусками наборов тестов. Но, если мне не изменяет память, перед запуском последного набора сервер в состоянии покоя кушал чуть меньше гига. То есть за двое суток он сожрал еще поллитра полгига. Будем считать что так и должно быть.

Что дальше?

Дальше у нас — ЛЕТО! 🙂

Но эта радость будет полностью доступна только через пару недель. А пока:

1. Пока у нас готовые бинарники IBProvider 3.11.1, которые ожидают своей очереди на тестовой машине.
2. Финальная полировка новой .NET игрушки.

Всем спасибо и пока 🙂

Leave a Comment