Имитация стрессовой нагрузки
для распределенных информационных систем,
разработанных с помощью технологии
J2EE

А. А. Ермыкин (Санкт-Петербург)
 
 

К настоящему времени создано довольно много самых различных методов тестирования и анализа, в том числе методы тестирования распределенных информационных систем (РИС) и их составляющих [1, 2, 3, 4]. РИС могут быть построены по различным технологиям [2]. Поэтому методы и средства тестирования таких систем следует разрабатывать с учетом специфики технологий, по которым они разработаны. К тому же существующее разнообразие типов таких систем настолько велико, что разработать для них универсальный метод тестирования и анализа даже в рамках одной технологии является сложной задачей. Представляется и вовсе невозможным разработать автоматизированное универсальное средство, которое учитывало бы все нюансы конкретной РИС и, в то же время, выдавало бы корректные и достаточно полные результаты [2].

Сейчас существует сравнительно небольшое количество средств стресс тестирования для систем, разработанных в рамках технологии J2EE [5]. Необходимо учитывать, что, как правило, для каждой задачи существует определенная специфика и определенная, характерная только для этой задачи, функциональность, соответствующая ей нагрузка и распределение нагрузки на все используемые данной системой виды ресурсов, необходимые для решения поставленной задачи. Во-вторых, существует необходимость тестировать и анализировать РИС под влиянием стрессовой нагрузки и анализировать полученные результаты. В-третьих, нужно получать данные о распределении нагрузки на ресурсы для каждой конкретной системы и о характере динамического изменения параметров характеристик этой системы при той или иной входной нагрузке. В-четвертых, эти возможности или, по крайней мере, их часть должны быть доступны уже после окончания первой части этапа разработки, на этапе тестирования, а также на всех последующих этапах эволюции РИС, включая поддержку и модернизацию. В-пятых, нужно в рамках существующей РИС правильно оценивать загрузку всех ресурсов РИС при различных условиях нагрузки. Необходимо анализировать результаты экспериментов и получать дополнительную информацию. Для этого необходимо, чтобы разработанный метод и подход к тестированию и анализу таких сложных систем включал в себя имитацию множества клиентов. Имитация множества клиентов необходима, поскольку в большинстве случаев другие способы стресс тестирования либо значительно сложнее, либо намного дороже, либо вообще неприемлемы. В нашем случае интерес представляет стресс тестирование как способ не только протестировать специфические, но важные характеристики РИС, а также проанализировать систему. Стресс тестирование является очень важным еще и потому, что позволяет выявлять и отслеживать не только функциональные свойства РИС, но и, что является особенно ценным, нефункциональные свойства.

Основные высокоуровневые сущности и понятия типичной системы, разработанной по технологии J2EE: информационная система (ИС), РИС, система управления базами данных (СУБД), сервер приложений (СП; Application ServerAS). Тест и система стресс тестирования распределенной информационной системы (ССТРИС) могут быть использованы для тестирования и анализа распределенных информационных систем, разработанных по технологии J2EE. Соотношение между этими сущностями можно увидеть на рис. 1. Все диаграммы выполнены в соответствии со спецификацией UML.

Рис. 1. Основные сущности и понятия системы

Типичная конфигурация РИС, разработанной по технологии J2EE представлена на диаграмме размещения РИС с кластером серверов приложений (см. рис. 2).

Рис. 2. Диаграмма размещения РИС с кластером серверов приложений

Сейчас уже существуют определенные тестовые программы, комплексы и средства, которые 

могут быть применены для тестирования и, в частности, для стресс тестирования РИС [5, 6]. 

Но ни одно из этих средств не учитывает все те пять условий, которые были упомянуты выше. 

Для того чтобы удовлетворить этим условиям, нужен другой подход и соответствующий ему метод. 

Мною предложен метод, включающий ССТРИС – см. диаграмму размещения системы ССТРИС-РИС на рис. 3.

 

 

 

 

 

 

 

 

 

 

Рис. 3. Диаграмма размещения системы ССТРИС-РИС

ССТРИС является той системой, которая может помочь нам в достижении поставленных целей. Можно снять данные со всех критических участков РИС с помощью наблюдателей (см. рис. 4). Анализатор – часть ССТРИС, которая должна получить, отфильтровать и обработать данные для анализа. Клиентская часть ССТРИС имитирует нагрузку от реальных пользователей системы. Здесь важно удовлетворить требованию максимальной приближенности к реальным входным воздействиям. В то же время здесь есть требование, чтобы это было экономически целесообразно и эффективно. В результате проведения стресс тестирования путем анализа полученных данных можно наиболее полно и достоверно охарактеризовать РИС и выявить особенно интересующие нас нефункциональные качества системы. ССТРИС позволяет отслеживать состояние системы при эволюции. А это очень важно для того, чтобы информировать заказчика о том, насколько большую нагрузку и с какими показателями может выдержать конечная РИС.

Графики отчетов, которые являются результатами обработки данных, полученных с помощью ССТРИС помогают проанализировать текущее состояние системы, выявить проблемные места и наметить дальнейшие пути для прогресса (см. примеры на рис. 4, рис. 5 и рис. 6). На рисунках можно видеть результаты стресс тестирования некоторой РИС, в состав которой входит четыре узла серверов приложений, из которых три являются рабочими, а один административным. Стресс тестирование длилось около 12 часов. ССТРИС имитировала 90 пользователей, которые отдают приказы РИС.

Рис. 4. График рассеяния времени ответа при отдаче приказов


Стоит еще раз упомянуть, что одной из важных причин необходимости создания нового метода стресс тестирования является экономическая целесообразность, о которой нельзя ни в коем случае забывать. Кому будет интересен прекрасный метод стресс тестирования и анализа, если его применение будет стоить в десятки, а то и сотни раз дороже, чем разработка всей системы? Сейчас появляются некоторые коммерческие средства стресс тестирования, но качество и стоимость проведения оставляют желать лучшего [7]. В зависимости от конкретной РИС, стоимость может доходить до нескольких миллионов долларов. Необходим новый метод, который может улучшить полноту и соотношение стоимость-качество для такого рода тестирования.

Литература

1.      Dimitra Giannakopoulou, Gary T. Leavens, Murali Sitaraman и др. SAVCBS 2001 Proceedings Specification and Verification of Component-Based Systems/Workshop at OOPSLA 2001. – October 14, 2001. – с. 136

2.      Gopalan Suresh Raj. Web Cornucopia. An Oasis for the parched Enterprise Component Engineer/Developer//URL: http://www.execpc.com/~gopalan/

3.      Nayeem Islam. Distributed Objects Methodologies for Customizing Systems Software/IEEE Computer Society Press. – 1996.

4.      Philippe Collet. On Contract Monitoring for the Verification of Component Based Systems/Objects and Software Components Group.

5.      Enterprise: Java Pet Store Sample Application//URL: http://java.sun.com/blueprints/code/

6.      ECperf Specification//URL: http://java.sun.com/j2ee/ecperf/

7.      Load Runner Specification//URL:
http://www-heva.mercuryinteractive.com/products/loadrunner/