Результаты тестирования сборки 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 игрушки.
Всем спасибо и пока 🙂