Оптимизация размещения виртуальных машин на серверах
Алгоритм, который распределяет виртуальные машины по физическим серверам с учётом их профилей нагрузки и ограничений по ресурсам. Решение позволило снизить количество используемых серверов без нарушения SLA.
Контекст
Размещение виртуальных машин вручную и по простым правилам оставляет большой запас: серверы загружены неравномерно, а платить приходится за все.
Ключ к плотной упаковке – профили нагрузки: машины с непересекающимися пиками можно ставить рядом, машины с одинаковыми – нельзя.
схема
Что меняет плотная упаковка
из проекта
Результат оптимизации


Что входило в задачи
Соседями становятся машины с разными пикамиплотность даёт учёт профилей нагрузки: рядом ставятся машины, чьи пики расходятся во времени
- История утилизациисбор и анализ реальных данных по машинам
- Четыре измеренияCPU, RAM, диск и сеть – машина и сервер как многомерные объекты
- Профили нагрузкикластеризация машин по форме потребления
- Генетический алгоритмпоиск плотной упаковки в пространстве ограничений
- Карта размещениясовместимость и SLA входят в задачу жёсткими условиями
Стек проекта
Pythonгенетические алгоритмыscikit-learnpandasPostgreSQL