Разработка распределенного анализатора нагрузки
Автор: vlada796 • Октябрь 16, 2023 • Дипломная работа • 3,257 Слов (14 Страниц) • 97 Просмотры
СОДЕРЖАНИЕ
ВВЕДЕНИЕ 5
1 Постановка задачи 6
1.1 Анализ существующих подходов 6
1.2 Постановка задачи 7
1.3 Требования к разрабатываемому решению. 7
2 Разработка системы 7
2.1 Технологии, используемые при разработке 7
2.1.1 Выбор распределенной системы вычислений 8
2.1.2 Описание распределенной системы вычислений Apache Storm 9
2.2 Архитектура данных 11
2.3 Программная архитектура 12
2.4 Системная архитектура 13
3 Реализация 13
3.1 Сценарий работы приложения 13
3.2 Модули 14
3.2.1 WorkloadSpout 14
3.2.2 WorkloadBuilder и WorkloadFilter 14
3.2.3 Streams и groupBy 14
3.2.4 IopsAggregator 15
3.2.5 SkewAggregator 17
3.2.6 FilterNaN 17
3.2.7 FinalSkewAggregator 18
3.2.8 CacheAggregator и DBAggregator 18
3.2.9 PostgresSqlState и PostgresSqlStateConfig 18
ЗАКЛЮЧЕНИЕ 19
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 20
ПРИЛОЖЕНИЕ A 21
ПРИЛОЖЕНИЕ Б 22
ВВЕДЕНИЕ
Знание параметров входной нагрузки является критичным для систем хранения данных, так как позволяет динамически подстраивать работу массива для выполнения заданных требований по производительности. Так же знание параметров входной нагрузки позволяет точно оценить конфигурацию нового массива при миграции данных.
Цель данной работы – разработка распределенного потокового анализатора входной нагрузки для систем хранения данных. Он может быть запущен на нескольких ядрах внутри системы хранения данных (EMC VMAX) и будет обрабатывать данные в потоковом режиме.
В данной пояснительной записке будет описана система и ее компоненты, требования к разрабатываемому продукту, а также даны детали реализации.
Постановка задачи
Анализ существующих подходов
В настоящее время есть два основных подхода по сбору и анализу данных входной нагрузки [1].
- В рамках первого подхода на массиве ведется сбор агрегированных метрик за фиксированные временные интервалы. Например, каждые 10 минут меряется средняя интенсивность входного потока, средний размер каждой операции ввода/вывода и так далее. В массивах EMC VNX такие данные записываются в специальные файлы NAR, в массивах EMC VMAX в BTP. Такой подход не позволяет быстро оценить произошедшие изменения входной нагрузки и, кроме того, дает лишь приблизительное представление о входной нагрузке, так как данные собираются в агрегированном виде. В то же время достоинством данного подхода являются простота его реализации и низкая вычислительная сложность используемых алгоритмов.
- Второй подход заключается в сборе детальной информации по каждой операции ввода/вывода и сохранении ее вне массива с последующим офлайн анализом. Для этой цели в массивах EMC VMAX используются специальные файлы CDB. Этот подход позволяет оценить параметры входной нагрузки с любой требуемой точностью. При этом, он так же не позволяет оценить изменения в реальном времени так как обработка таких файлов требует значительных вычислительных ресурсов. Кроме того, для высоко нагруженных систем хранения данных, когда интенсивность входного потока достигает десятков тысяч операций в секунду, хранение, передача и анализ такого большого потока данных может вызывать отдельные сложности.
Постановка задачи
В рамках дипломной работы предлагается разработать и реализовать распределенный потоковый анализатор входной нагрузки. Он может быть запущен на нескольких ядрах внутри системы хранения данных (EMC VMAX) и будет обрабатывать данные в потоковом режиме. Это позволит избежать хранения информации по всем операциям ввода/вывода и, в то же время, обеспечить анализ данных с требуемой точностью в реальном времени. Полученное описание входной нагрузки будет записываться в базу данных и в дальнейшем использоваться для динамической адаптации работы массива (SLO based management) и в VMAX Sizer для оценки конфигурации нового массива в случае предстоящей миграции данных.
...