Балансировка загрузки Лобачёв Иван Арискин Дмитрий Ковалёв Дмитрий Чеботарёв Сергей Гилёв Валерий Учебная лаборатория SWsoft НГУ Задачи Алгоритм балансировки Сбор статистики Визуализация Перенос процессов Алгоритм балансировки Арискин Дмитрий Ограничения на задачи Система состоит только из взаимосвязанных задач. Независимых задач нет Система работает циклически Любая задача системы находится в одном из двух состояний: Обработка данных (с максимальным использованием процессора) Ожидание данных (процессор не используется) Диаграмма работы системы “board” - задача работает “diamond” - задача получает данные “lequal” – задача передаёт данные “space” – задача простаивает Модель функционирования системы Работа задачи представляется набором интервалов активности Начало интервала активности определяется приёмом данных от другой задачи В течение интервала активности задача может передавать данные Предсказание на основе модели На основе данных модели делается прогноз работы системы при различных возможных распределениях задач по машинам Среди этих прогнозов выбирается оптимальный. Реализация Программа построения модели и её анализа Программа написана на С++ с использованием STL Является надстройкой над системой сбора статистики. Тестирование Количество задач – порядка 10 Длительность цикла 4 – 20 мин. Характерный выигрыш по времени - до 40% (по сравнению с распределением задач по умолчанию) Ошибка предсказания - меньше 5% Сбор статистики Лобачёв Иван Сбор статистики Получение информации через /dev/kmem Доступ к любым структурам ядра Увеличение скорости доступа Переход на NetSNMP Рефакторинг кода Перенос логгера на платформу Win32 Более удобное взаимодействие с визуализатором Возможность использования визуализатора и логгера как систему для наблюдения за кластером Визуализация Ковалёв Дмитрий Визуализатор Поддержка множественных рёбер Дерево навигации Данные рядом с процессами и связями Контекстные меню для процессов Масштабирование Динамическое обновление параметров и состояния сиситемы Визуализатор Запись результатов Экспорт в AVI Сохранение результатов Экспорт в картинки Перенос процессов Валерий Гилёв Перенос процессов Checkpointer механизм – CRAK Модуль ядра Работа с файлами Перенос сокетов Сделана тестовая реализация на основе CRAK Проверена работоспособность на простейших приложениях На 80% завершена полноценная реализация переносчика - MigrationManager Результаты Система визуального контроля за кластерной системой Система анализа и прогнозирования Установлен и протестирован Checkpoint/Recovery механизм CRAK Планы на будущее Протестировать алгоритм Интегрировать визуализатор с логгером Сделать перенос с поддержкой корректного переноса открытых соединений Сделать работоспособный продукт Вопросы