Уважаемые дамы и господа, коллеги,
Сообщаем о результатах первого тура нагрузочного тестирования Меркурия. Этот тур можно назвать исследовательским и направлен он был в большей степени на проверку сделанного нашими программистами испытательного стенда, нежели на нагрузочное тестирование самого Меркурия.
Перед тем как обрисовать сценарий тестирования отметим, что тестирование происходило со снятой внешней нагрузкой. Т.е. в момент начала испытаний все пользователи (и web-интерфейс и API-интерфейс) были от Меркурия отключены. Время отключения мы старались сделать минимальным.
Тестирование проведено в 6 этапов, в ходе которых менялся режим подачи нагрузки (нагрузка – это интенсивность поступления тех или иных запросов в Меркурий) и менялось количество параллельных потоков (каждый поток имитирует работу одного внешнего пользователя либо одной внешней информационной системы), поступающих в Меркурий данных.
Количество потоков варьировалось от 2 000 до 21 000. Режимы подачи нагрузки менялись от близких к оптимальным до очень далеких от оптимального.
В каждом потоке виртуальным пользователем создавался производственный эВСД и из него (на весь объем производственного эВСД) создавался транспортный эВСД на перемещение со сменой собственника.
Кроме того, было промоделировано влияние неверного установления времени ожидания обработки (этим часто «грешат» новые пользователи, использующие API-интерфейс, а если новых пользователей одномоментно подключается много, то на некоторое время это влияние становится весьма важным для общей производительности системы) при поступлении запроса от внешней системы. Время ожидания было установлено в 4 раза меньше оптимального, в результате чего стенд генерировал множество запросов на получение от Меркурия результата обработки и ответ на них был IN_PROCESS. Таких ответов в ходе этапов было от 45 до 91% в зависимости от этапа и времени, прошедшего от начала конкретного этапа.
Дестабилизации работы системы в ходе всех этапов не случилось: не удалось загрузить Меркурий настолько, чтобы он завис.
Суммарное время исполнения всех шести этапов составило 87 минут, за которые было оформлено 5’390’700 эВСД (в сумме – производственных и транспортных) со средней скоростью 3,72 млн. эВСД в час (89 млн за сутки: сейчас за сутки оформляется примерно 3,8-7,4 млн эВСД).
Максимальная достигнутая скорость (условия близки к оптимальным) зарегистрирована на первом этапе, и она составила 6,57 млн. эВСД в час (157 млн в сутки – это чуть меньше, чем сейчас эВСД оформляется за месяц).
Минимальная достигнутая скорость (условия далеки от оптимальных) составила 1,78 млн эВСД в час (42,7 млн эВСД за сутки – примерно столько эВСД сейчас оформляется за 6 дней).
Полученные данные, как мы надеемся, позволят на втором туре тестирования установить несколько режимов подачи нагрузки, дать Меркурию поработать в каждом из них в течение более длительного времени (1-2 часа) и определить его максимальную производительность при той или иной модели поведения внешних систем. Второй тур также будет проводиться при отключенной внешней нагрузке.
После этого предстоит еще один тур. В его ходе система, уже без снятия внешней нагрузки, будет обрабатывать примерно 80-ти процентную максимальную нагрузку (максимальную выдерживаемую системой внешнюю нагрузку мы надеемся установить во втором туре) в течение длительного времени, исчисляемого в сутках. Это будет проверка системы на стабильность при субмаксимальных нагрузках – проверка на живучесть, на накопление в дисковом пространстве и памяти «мусора», замедляющего работу и ограничивающего доступные ресурсы.
Затем полученные нами данные проверят внешние тестировщики – независимая компания, которая проведет нагрузочные испытания Меркурия.
О времени проведения испытаний и их результатах мы сообщим вам дополнительно.