Алгоритм динамического распределения ресурсов в облачной инфраструктуре (1187394), страница 2
Текст из файла (страница 2)
Отметимтакже, что время доступа не зависит и от расположения информации впамяти.Рис.1. Архитектура UMA систем.Преимуществом такой архитектуры является то, что балансировкунагрузки на процессоры провести достаточно легко, так как не нужнозадумываться о времени доступа к памяти каждого из процессоров — сэтой точки зрения все они одинаковы.Однако системы с UMA архитектурой имеют ряд недостатков, из-закоторых не имеют широкого распространения на рынке на сегодняшнийдень.
Во-первых, в каждый момент времени обмен по шине может веститолько один из процессоров, то есть процессоры должны соперничать за9доступ к шине. А поскольку фактически процессор обычно намногобыстрее памяти, возникает простой процессоров, ожидающих своейочереди для доступа к памяти через шину.С первого взгляда может показаться, что ситуация, описанная выше,может быть улучшена при наличии у каждого процессора локальной кэшпамяти. Но в этом случае возникает проблема когерентности этих кэшей,которую будет сложно поддерживать, так как при записи в памятьпроцессор должен оповестить другие процессоры, содержащие в своихкэшах те же данные, о внесенных изменениях. Это можно сделать иличерез общую шину, чем увеличить нагрузку на нее еще больше, или черездополнительные каналы связи прямо между процессорами, что потребуетизменений в архитектуре системы.Системы с неравномерным доступом к памятиNUMA системы пришли как решение проблемы масштабированиясистем с однородным доступом к памяти.
Принципиальная схема этоймногопроцессорнойархитектурыпредставленанарисунке2.Вархитектуре совместно используемой памяти NUMA для каждогопроцессора существует отдельный локальный модуль памяти, к которомуон может обращаться напрямую, что дает значительное преимущество вработе. В то же время, он может обращаться к модулю памяти любогодругого процессора при помощи общей информационной сети.В данном случае время доступа к памяти варьируется в зависимостиот местонахождения данных, к которым осуществляется доступ. Еслиданные находятся в локальном модуле памяти, доступ осуществляетсябыстро, в противном случае, для доступа к удаленному модулю требуетсябольшее время.10Рис.2. Архитектура NUMA систем.Преимуществом архитектуры NUMA как иерархической структурысовместно используемой памяти является возможность сокращениясреднего времени доступа в результате рационального использованиябыстрой локальной памяти.
NUMA архитектура имеет свои особенности,которые можно и нужно учитывать при оптимизации производительностивиртуальных окружений[4].Также поддерживать когерентность кэшей в NUMA архитектурахпроще, чем в UMA архитектурах. Эта простота достигается за счет того,что каждому модулю памяти соответствует один процессор. Еслипроцессор захотел получить доступ к чужой памяти, то он не можетсделать это незаметно для процессора, которому эта память принадлежит.Поэтому при изменениях в запрашиваемом куске памяти процессор,которому эта память принадлежит, будет знать, кого оповестить об этихизменениях. Так NUMA архитектура, используемая в системах Intel,поддерживает когерентность кэшей, поэтому ее иногда называютccNUMA — cache coherent NUMA.
Это означает наличие специальногоаппаратного решения для согласования содержимого кэшей. Конечно,такое общение кешей ухудшает общую производительность системы, нобезнегопрограммироватьсистемуснепредсказуемымсостоянием данных было бы крайне затруднительно.11текущимНедостатком NUMA систем является большое время доступа кчужой памяти, из-за чего невнимание к особенностям архитектуры можетпривести к ухудшению работы памяти, возможные эффекты былиописаны в практической литературе[5], а также подтверждены напрактике[6].NUMA на сегодняшний день более распространена на рынке.
UMAархитектура воспринимается скорее как предок NUMA, чем как реальнаяальтернатива[7]. Это связано не только с ее преимуществами посравнению с UMA архитектурами, а еще и с тем, что NUMA проще вреализации.История возникновения NUMA архитектурNUMAархитектуралогическиследуетизсимметричныхмультипроцессорных архитектур, которые активно разрабатывались втечение 1990х годов множеством крупных компаний. Впервые идеюгибридной архитектуры предложил Стив Воллох, он воплотил ее всистемах серии Exemplar. Вариант Воллоха – система, состоящая извосьми SMP-узлов. Фирма Hewlett-Packard купила идею и реализовала насуперкомпьютерах серии SPP.
Идею подхватил Сеймур Крей (SeymourR.Cray), которого ещё называют “отцом суперкомпьютеров”, и добавилновый элемент – когерентный кэш, создав так называемую архитектуруcc-NUMA (Cache Coherent Non-Uniform Memory Access), котораярасшифровывается как " неоднородный доступ к памяти с обеспечениемкогерентности кэшей".
Он ее реализовал на системах типа Origin.Особенности виртуализации на NUMA архитектурахКак уже было объяснено ранее, главная особенность заключается в12разной скорости доступа к своим и чужим относительно процессорамодулям памяти. В качестве наглядного доказательства прямого влиянияэтого фактора приведём исследования Yuxia Cheng в PerformanceMonitoring-Based Traffic-Aware Virtual Machine Deployment on NUMASystems.
В этой статье автор измерил производительность NUMA системыдля нескольких типов виртуализационной нагрузки на систему.Рис.3. Причины падения производительности ВМ при работе на NUMAсистеме.Описание пяти сценариев нагрузки с иллюстрацией представлено нарисунке 3, в скобках указано узкое место:a) Две ВМ на одном камне, память на разных узлах.
(LLC кэш)b) Одна ВМ и память на чужом узле. (удалённая память)c) Две ВМ на разных камнях, память “накрест”. (QPI).d) Две ВМ на разных камнях, память на одном узле. (IMC камнякоторому принадлежит память)13e) Одна ВМ и память на своем узле. (база)14Актуальность задачиПроблема размещения виртуальных машинРабота виртуальных окружений в многоядерных NUMA системах сбольшим количеством разделяемых ресурсов может приводить к потерямпроизводительности на разных уровнях. В работах других исследователейбыло показано, что задача оптимального распределения по ядрампринадлежит NPC классу [11], если количество ядер больше или равнотрем, так как данная задача сводится к многомерной задаче о назначениях.Многомернуюзадачуоназначенияхможноматематическисформулировать следующим образом[24]:Даны множеств 1 , 2 … , каждое из которых содержит элементов, и функция стоимости : 1 × 2 × … × → .Нужно найти такое назначение , состоящее из подмножеств,каждое из которых содержит один единственный элемент из каждогомножества , 1 < < .
Каждый элемент назначения = {1 , 2 … } имеет стоимость = ( ), где1 ≤ ≤ и – элемент, выбранный из множества . Приэтом каждый элемент , 1 < < , должен принадлежать одномуединственному подмножеству назначения , общая стоимость ∑=1 минимальна.Для того, чтобы показать, как задача размещения виртуальныхмашин сводится к многомерной задаче о назначениях, сформулируем15задачу размещения виртуальных машин в математических терминах:Дано множество , которое содержит элементов.
Обозначимчерез множество всех -размерных подмножеств . Каждое из этих -размерных подмножеств обозначим через , где = 1, 2 … ( ).Каждое подмножество имеет вес . Цель состоит в нахождениитаких подмножеств 1 , 2 … , что выполнены следующие условия:1. ⋃=1 = .2. ∑=1 минимальна.Втакойформулировкекаждыйэлементсоответствуетвиртуальной машине, каждое подмножество соответствует группевиртуальных машин, назначенных на исполнение на одно ядро, а их веса соответствуют суммарной деградации всех виртуальных машин вкаждом подмножестве . Первое условие означает, что каждаявиртуальная машина распределена на какое-либо ядро.
Второе условие,соответственно, отвечает за минимизацию общей деградации всехвиртуальных машин.Теперь покажем, что задача размещения виртуальных машинсводится к многомерной задаче о назначениях. Пусть = ⋃=1 и = ∗ .Построимподмножества ,1 ≤ ≤ ( ).Еслиподмножество содержит в точности один элемент из , 1 < < ,16то его вес будет равен = (1 , 2 … ), где – это функциястоимости в контексте многомерной задачи о назначениях, а – элемент,выбранный из . Иначе положим = +∞.Минимизация суммарного веса в задаче размещения виртуальныхмашин ведет к минимизации суммарной стоимости в многомерной задачео назначениях и наоборот.
Из этого следует, что задача размещениявиртуальных машин является NP-полной при количестве ядер дляразмещения виртуальных машин ≥ 3.Проблема итеративного перераспределенияКак уже было отмечено, задача распределения виртуальных машинпринадлежит классу NPC при количестве ядер для размещения большимтрех, но это не самая большая проблема, с которой придется столкнуться.Отметим еще несколько проблем перераспределения виртуальныхмашин, которые усложняют задачу балансировки:● Виртуальные машины могут требовать ресурсы не кратноузлам.
Например, 3 виртуальные машины по 4 ГБ нужно разместитьна двух узлах по 6 ГБ.● Нагрузки могут иметь разную интенсивность. Например,виртуальные машины заявлены с одинаковыми размерами памяти,но некоторые из них активно работают с памятью, а некоторые нет.Эта проблема может быть решена с помощью чтения счётчиковпроизводительности.● Миграция памяти – это дорого во всех смыслах, так каксоздает дополнительную нагрузку на CPU, LLC, QPI, IMC. Поэтому17перед тем, как динамически перераспределять виртуальные машиныпоузлам,нужнооценить,перекроетливыигрышотперераспределения затраты на миграцию.● Существуют проблемные ситуации, которые нельзя решитьодной миграцией, например, сильно фрагментированные по узламвиртуальные машины.● Размер и интенсивность нагрузки меняется динамически.
Этосоздает дополнительные трудности в оценке целесообразностиперераспределения виртуальных машин.Существующие алгоритмы балансировки нагрузкиЧтобыулучшитьвозможностивиртуальныхмашиндляпредоставления надежных услуг на облачной платформе, предлагаетсяоблачнаявычислительнаясистемасархитектурой,ведущейиподчиненной систем. Система состоит из облачного контроллера.Облачный контроллер является точкой входа в систему, а также отвечаетза управление лежащими в основе виртуализованными ресурсами, такимикак серверы, хранилища и сети.