Особенности работы Octopus
Фрагментация ресурсов
Кейс. Дисбаланс загрузки ресурсов на виртуальных машинах (ВМ), расположенных на одном хосте
Описание ситуации
На сервере-хосте размещены несколько виртуальных машин с различными требованиями к ресурсам процессора (VCPU) и оперативной памяти (RAM). Эти машины были созданы вручную, без учета общей нагрузки на хост. В результате, распределение ресурсов оказалось неравномерным, что привело к перегрузке некоторых компонентов системы.
Например, ёмкость хоста — 64 VCPU и 64 ГБ RAM.
Виртуальные машины потребляют:
- ВМ1: 1 VCPU, 8 ГБ RAM
- ВМ2: 2 VCPU, 16 ГБ RAM
- ВМ3: 1 VCPU, 8 ГБ RAM
- ...
- ВМN: 3 VCPU, 32 ГБ RAM
В связи с этим могут возникать следующие проблемы:
- Перегрузка оперативной памяти: Суммарная потребность всех виртуальных машин в оперативной памяти приближается к 100%, что создает высокий риск отказа системы из-за нехватки RAM. Например, если одна из ВМ начнет активно использовать больше памяти, это может вызвать сбои на остальных машинах.
- Недоиспользование процессоров: Несмотря на высокие требования к памяти, использование процессорной мощности остается низким. Это означает, что большая часть вычислительных ресурсов простаивает, тогда как память уже почти исчерпана.
Алгоритмы Octopus учитывают все ресурсы поставщика и все ресурсы, необходимые потребителю. В случае, когда хост с мощным CPU и малым количеством RAM, то Октопус будет стараться перемещать ВМ, которые имеют высокую потребность в CPU и в низкой потребности RAM, тем самым распределять нагрузку оптимальным образом. Это позволит избежать перегрузки отдельных компонентов и повысит общую эффективность использования ресурсов. Эти алгоритмы применимы для любых других комбинаций.