Андреев Андрей Александрович ИССЛЕДОВАНИЕ УСТОЙЧИВОСТИ СЕРВЕРНЫХ ПРИЛОЖЕНИЙ Тамбовский государственный университет им. Г.Р. Державина Институт математики, физики и информатики Кафедра информатики и информационных технологий Научный руководитель: доцент, к.ф-м.н. И.И.Иванов
Исследование устойчивости серверных приложений Цель: Реализация алгоритма, позволяющего эмулировать нагрузки на серверные приложения и исследовать поведение серверных приложений при экстремальных нагрузках Задачи: 1. Изучить отказоустойчивость серверных приложений при экстремальных нагрузках; 2. Проанализировать атаки направленных на перегрузку серверных приложений 3. Разработать программный комплекс для исследования поведения серверных приложений при экстремальных нагрузках, в том числе и при целенаправленных атаках типа «отказ в обслуживании» 2
Исследование устойчивости серверных приложений Нагрузочное тестирование Цели и задачи: на стадии проектирования на стадии программирования на стадии тестирования на стадии поставки 3
Необходимость нагрузочного тестирования Стабильная работа системы Работа системы при перегрузке 4
Характеристика производительности время отклика (response time) пропускная способность (throughput) объем потребляемых ресурсов (resource utilization) 5
Виды нагрузочных тестов Нагрузочный тест (Load) Тест на выносливость (Endurance) Стресс тест (Stress) Грубый стресс тест (Spike) 6
Обобщённая структура испытательного стенда 7
Сценарии применения нагрузочного тестирования Моделирование (D)DoS ((Distributed) Denial of Service) атак на различном уровне работы информационных систем моделирование преднамеренных дестабилизирующих воздействий; Моделирование нормальной деятельности пользователей пиковых режимах нагрузки; Определение предельно допустимого уровня нагрузки на систему в конкретном окружении 8
Техника выполнения нагрузочного тестирования Ручная С помощью специализированных программных продуктов С помощью самостоятельно-написанной утилиты 9
Реализация программного комплекса Overload Procedure execute… … // увеличение счётчика числа активных потоков Inc(T_Count); try // сравнение числа созданных потоков с необходимым количеством if T_Count<=potok then begin try // создание соединения TCP.Connect; except end; // уменьшение счётчика числа активных потоков Dec(T_Count); … 10
Внешний вид программного комплекса Overload Пульт управления и мониторинга Бот 11
Результат тестирования Small HTTP Server 1 мин. = timeout, лимит количества одновременных подключений –
Спасибо за внимание 13