FrontDays #1. Илья Кучмин, Оптимизация загрузки тяжелых страниц
Балансировка загрузки
description
Transcript of Балансировка загрузки
![Page 1: Балансировка загрузки](https://reader036.fdocuments.net/reader036/viewer/2022062301/56815238550346895dc07d1a/html5/thumbnails/1.jpg)
Балансировка загрузки
Учебная лаборатория SWsoft НГУ
Лобачёв ИванАрискин ДмитрийКовалёв ДмитрийЧеботарёв СергейГилёв Валерий
![Page 2: Балансировка загрузки](https://reader036.fdocuments.net/reader036/viewer/2022062301/56815238550346895dc07d1a/html5/thumbnails/2.jpg)
Задачи
Алгоритм балансировки
Сбор статистики
Визуализация
Перенос процессов
![Page 3: Балансировка загрузки](https://reader036.fdocuments.net/reader036/viewer/2022062301/56815238550346895dc07d1a/html5/thumbnails/3.jpg)
Алгоритм балансировки
Арискин Дмитрий
![Page 4: Балансировка загрузки](https://reader036.fdocuments.net/reader036/viewer/2022062301/56815238550346895dc07d1a/html5/thumbnails/4.jpg)
Ограничения на задачи
Система состоит только из взаимосвязанных задач. Независимых задач нет
Система работает циклически
Любая задача системы находится в одном из двух состояний: Обработка данных (с максимальным
использованием процессора) Ожидание данных (процессор не используется)
![Page 5: Балансировка загрузки](https://reader036.fdocuments.net/reader036/viewer/2022062301/56815238550346895dc07d1a/html5/thumbnails/5.jpg)
Диаграмма работы системы
“board” - задача работает
“diamond” - задача получает данные
“lequal” – задача передаёт данные
“space” – задача простаивает
![Page 6: Балансировка загрузки](https://reader036.fdocuments.net/reader036/viewer/2022062301/56815238550346895dc07d1a/html5/thumbnails/6.jpg)
Модель функционирования системы
Работа задачи представляется набором интервалов активности
Начало интервала активности определяется приёмом данных от другой задачи
В течение интервала активности задача может передавать данные
![Page 7: Балансировка загрузки](https://reader036.fdocuments.net/reader036/viewer/2022062301/56815238550346895dc07d1a/html5/thumbnails/7.jpg)
Предсказание на основе модели
На основе данных модели делается прогноз работы системы при различных возможных распределениях задач по машинам
Среди этих прогнозов выбирается оптимальный.
![Page 8: Балансировка загрузки](https://reader036.fdocuments.net/reader036/viewer/2022062301/56815238550346895dc07d1a/html5/thumbnails/8.jpg)
Реализация
Программа построения модели и её анализа Программа написана на С++ с
использованием STL Является надстройкой над системой сбора
статистики.
![Page 9: Балансировка загрузки](https://reader036.fdocuments.net/reader036/viewer/2022062301/56815238550346895dc07d1a/html5/thumbnails/9.jpg)
Тестирование
Количество задач – порядка 10
Длительность цикла 4 – 20 мин.
Характерный выигрыш по времени - до 40% (по сравнению с распределением задач по умолчанию)
Ошибка предсказания - меньше 5%
![Page 10: Балансировка загрузки](https://reader036.fdocuments.net/reader036/viewer/2022062301/56815238550346895dc07d1a/html5/thumbnails/10.jpg)
Сбор статистики
Лобачёв Иван
![Page 11: Балансировка загрузки](https://reader036.fdocuments.net/reader036/viewer/2022062301/56815238550346895dc07d1a/html5/thumbnails/11.jpg)
Сбор статистики
Получение информации через /dev/kmem Доступ к любым структурам ядра Увеличение скорости доступа
Переход на NetSNMP
Рефакторинг кода
Перенос логгера на платформу Win32 Более удобное взаимодействие с визуализатором Возможность использования визуализатора и
логгера как систему для наблюдения за кластером
![Page 12: Балансировка загрузки](https://reader036.fdocuments.net/reader036/viewer/2022062301/56815238550346895dc07d1a/html5/thumbnails/12.jpg)
Визуализация
Ковалёв Дмитрий
![Page 13: Балансировка загрузки](https://reader036.fdocuments.net/reader036/viewer/2022062301/56815238550346895dc07d1a/html5/thumbnails/13.jpg)
Визуализатор
Поддержка множественных рёбер
Дерево навигации
Данные рядом с процессами и связями
Контекстные меню для процессов
Масштабирование
Динамическое обновление параметров и состояния сиситемы
![Page 14: Балансировка загрузки](https://reader036.fdocuments.net/reader036/viewer/2022062301/56815238550346895dc07d1a/html5/thumbnails/14.jpg)
Визуализатор
![Page 15: Балансировка загрузки](https://reader036.fdocuments.net/reader036/viewer/2022062301/56815238550346895dc07d1a/html5/thumbnails/15.jpg)
Запись результатов
Экспорт в AVI
![Page 16: Балансировка загрузки](https://reader036.fdocuments.net/reader036/viewer/2022062301/56815238550346895dc07d1a/html5/thumbnails/16.jpg)
Сохранение результатов
Экспорт в картинки
![Page 17: Балансировка загрузки](https://reader036.fdocuments.net/reader036/viewer/2022062301/56815238550346895dc07d1a/html5/thumbnails/17.jpg)
Перенос процессов
Валерий Гилёв
![Page 18: Балансировка загрузки](https://reader036.fdocuments.net/reader036/viewer/2022062301/56815238550346895dc07d1a/html5/thumbnails/18.jpg)
Перенос процессов
Checkpointer механизм – CRAK Модуль ядра Работа с файлами Перенос сокетов
Сделана тестовая реализация на основе CRAK Проверена работоспособность на простейших
приложениях
На 80% завершена полноценная реализация переносчика - MigrationManager
![Page 19: Балансировка загрузки](https://reader036.fdocuments.net/reader036/viewer/2022062301/56815238550346895dc07d1a/html5/thumbnails/19.jpg)
Результаты
Система визуального контроля за кластерной системой
Система анализа и прогнозирования
Установлен и протестирован Checkpoint/Recovery механизм CRAK
![Page 20: Балансировка загрузки](https://reader036.fdocuments.net/reader036/viewer/2022062301/56815238550346895dc07d1a/html5/thumbnails/20.jpg)
Планы на будущее
Протестировать алгоритм
Интегрировать визуализатор с логгером
Сделать перенос с поддержкой корректного переноса открытых соединений
Сделать работоспособный продукт
![Page 21: Балансировка загрузки](https://reader036.fdocuments.net/reader036/viewer/2022062301/56815238550346895dc07d1a/html5/thumbnails/21.jpg)
Вопросы