Котов А.С. () - , Котов С.Л. (info@gicpsvt.ru) - Главный испытательный сертификационный центр безопасности программных средств и вычислительной техники (доцент, директор), Тверь, Россия, кандидат экономических наук, Гибин Ю.В. () - | |
Ключевое слово: |
|
Ключевое слово: |
|
|
Для надежного и предсказуемого функционирования информационной системы необходимо иметь данные о предельной нагрузке (выраженной, например, в количестве одновременно поступающих в систему пользовательских запросов), о характере поведения системы в условиях перегрузки и возможных последствиях в случае отказа системы из-за превышения допустимой нагрузки. К сожалению, расчетные значения таких характеристик, определенные теоретическими методами, не всегда совпадают с фактическими и неадекватно отражают поведение системы в реальной критической ситуации. Кроме того, информационная система сама по себе неоднородна с позиции предельной производительности: всегда имеются критичные элементы программно-аппаратной платформы, накладывающие ограничение на производительность системы и снижающие ее надежность. Выявление таких элементов не всегда является тривиальной задачей, и экспериментальные данные дают порой весьма неожиданные результаты. По характеру поведения информационной системы в условиях критической нагрузки их можно условно разделить на три группы: 1) системы, у которых при повышении нагрузки производительность достигает максимального зна- чения и затем остается практически постоянной при дальнейшем росте нагрузки (идеальные системы); 2) системы, у которых наблюдается медленный плавный спад производительности при превышении максимального уровня нагрузки; 3) системы, у которых производительность резко падает при незначительном превышении максимальной нагрузки. Системы третьего типа наиболее критичны с позиции надежности и безопасности информации и требуют соблюдения постоянного наличия резерва по производительности.
Для получения данных о производительности выполняется тестирование системы под нагрузкой с последующим анализом временных характеристик прохождения тестовых заданий. Тестирование под нагрузкой является методом, при котором тестовые задания имитируют нагрузку на информационную систему, подобную той, которая создается реальными пользователями системы. Реализация указанного метода тестирования осуществляется с помощью инструментальных средств, позволяющих в лабораторных условиях эмулировать сложное окружение телекоммуникационных, клиент-серверных и Internet-взаимодействий и выполнять всесторонний анализ распределенной системы. Задачей таких инструментальных средств является эмуляция от десятков до тысяч пользователей, посылающих и получающих информацию, воспроизводя тем самым сложное взаимодействие между клиентским и серверным приложением, базами данных, Internet-серверами и другими системами. Наиболее совершенные инструментальные средства нагрузочного тестирования позволяет организовать испытательный стенд с распределенным выполнением тестов и централизованным управлением. Структура такого стенда включает: - объект испытаний; - центральную управляющую станцию, где располагаются сервисы управления процессом тестирования, сервисы обработки статистики, репозиторий результатов тестирования и управляющая графическая консоль пользователя; - рабочие станции моделирования нагрузки, на которых расположены компоненты для имитации деятельности пользователей (на каждой такой станции может быть смоделирована работа до нескольких сотен виртуальных пользователей); - дополнительные станции мониторинга и генерации тестовых данных, на которых запускаются генераторы тестовых данных для обеспечения бесперебойного снабжения ими рабочих станций моделирования нагрузки. Структура испытательного стенда представлена на рисунке. Моделирование нагрузки осуществляется путем выполнения тестовых транзакций, каждая из ко- торых включает определенный набор тестов, выполняемых в последовательном или произвольном порядке. При тестировании сложных систем большое значение имеет адекватность моделирования взаимосвязанных процессов обработки информации. Выполнение следующего этапа технологического цикла обработки запроса зависит от результатов предыдущего, то есть практически образуется цепочка работ, принимающая на входе результаты предыдущего этапа обработки и на выходе передающая собственные результаты следующему этапу. Группы пользователей или клиентские приложения, взаимодействующие с автоматизированной системой, являются частью общего технологического цикла, а их действия являются взаимосвязанными между собой. Для обеспечения достоверного моделирования сложных технологических циклов инструментальные средства тестирования должны учитывать взаимосвязи работ, преобразуя их в соответствующие этапы выполнения тестовых заданий. Адекватное моделирование работы пользователей в таких системах возможно только при поддержке тестовым инструментарием определенной схемы выполнения тестов – конвейерной модели выполнения тестов с асинхронной передачей результатов между этапами выполнения. Накопленный в Государственном испытательном центре программных систем вычислительной техники (ГИЦ ПС ВТ) г. Тверь, опыт работы с инструментальными средствами нагрузочного тестирования позволил обобщить и сформулировать ряд требований к их характеристикам. · Масштабируемость нагрузки. Поддержка возможности параллельного запуска систем выполнения тестовых транзакций на большом числе станций испытательного стенда. Каждая станция должна обладать возможностью имитации до 100 виртуальных пользователей. · Централизованный сбор статистики. Инструмент должен обладать централизованным компонентом сбора статистики в реальном режиме времени. Средства статистической обработки должны давать возможность строить временные ряды для изучения динамики измерения показателей в течение сеанса тестирования. · Централизованное управление. Подготовка к выполнению сеансов, планирование, запуск и остановка сеансов, просмотр результатов – все эти процессы должны выполняться из единой точки. Процедуры конфигурирования и управления состоянием исполняющих систем, измерительных мониторов и агентов должны осуществляться в автоматическом режиме. · Гибкость моделирования. Инструментальное средство тестирования должно обладать способностью построения реалистичных по составу потоков тестовых запросов. Необходимо иметь возможность независимого исполнения нескольких тестовых транзакций с различными тестовыми смесями, для каждой транзакции должен задаваться свой план выполнения и число имитируемых пользователей. Для мо- делирования сложных систем, особенно связанных с документооборотом, требуется поддержка конвейерной модели выполнения тестов с асинхронной передачей результатов между этапами выполнения. · Развитые средства хранения конфигурации сеансов и результатов тестирования. Конфигурация сеансов тестирования представляет достаточно сложную систему взаимосвязанных параметров, поэтому инструментальное средство должно предоставлять возможности по структурированному хранению конфигурации сеансов. Необходимо иметь возможность многократного запуска каждого сеанса тестирования с сохранением статистических результатов по всем реализациям с целью последующего проведения сравнительного анализа. Наилучшим решением является использование реляционной СУБД для хранения конфигураций и связанных с ними наборов результатов. · Наличие средств мониторинга показателей системной статистики. Параллельный анализ показателей системной и прикладной статистики, привязанных к единой временной шкале, позволяет более точно определить причину возникновения узких мест и несбалансированности в системе. · Наличие средств регистрации событий (логирование), необходимых для выполнения автоматизированной фиксации нештатных ситуаций и записи сообщений об обнаруженных в ходе тестирования отклонениях в поведении испытываемой системы. Указанные требования реализованы в программ-ном комплексе тестирования Сервер-Тест 2.5, разработанном в ГИЦ ПС ВТ, зарегистрированном в Роспатенте и сертифицированном Госстандартом России. Комплекс прошел всестороннюю апробацию на ряде крупных банковских систем обработки оперативной информации. |
http://swsys.ru/index.php?id=705&lang=%E2%8C%A9%3Den&like=1&page=article |
|