Предсказание потребления процессорного времени в виртуальных средах (1187413), страница 3
Текст из файла (страница 3)
В работе [32] о динамичесом распределении виртуальных машин, была использована авторегрессионная модельвторого порядка AR(2). В работе [33], для предсказания была использована линейная регрессия по различным параметрам системы, включающим не только потребление процессорного времени. В работе [34]рассматривались линейная регрессия и однослойная нейронная сеть.3.2Байесовский классификаторРассмотрим теперь применение байесовской модели для предсказания процессорной нагрузки, как это предложено в статьях [5;10]. Эти исследования демонстрируют, что для Google Compute Cloud метод Байеса имеет высокую точность для долгосрочных предсказаний потребленияпроцессорного времени хостом, и работает лучше других методов, как то:скользящего среднего (moving averages), авторегрессии (auto-regression)и фильтрации (noise filters).
Отметим, что сравнивается точность работы классификатора при различных функциях риска, а из параметроввременного ряда процессорной нагрузки экспериментально отбираютсяте, которые дают максимальную точность байесовского метода. Продемонстрировано два метода предсказания – для предсказания средней нагрузки на длительные интервалы времени (от 3 до 16 часов) и для предсказания средней нагрузки на каждом из нескольких последовательныхинтервалов времени.Статьи [5; 10] работают над тем же набором данных, что и даннаяработа, однако предсказываемая величина различна.
В [5; 10], рассматривается потребление процессорного времени физической машиной, накоторую планировщик в некотором порядке отправляет задачи на выполнение. Эти нагрузки зачастую имеют небольшую продолжительность18(большинство до получаса). Однако, в исследованиях предсказываетсяагреригованное потребление, которое скалдывается из множества нагрузок. Каждая из нагрузок имеет свою отдельную продолжительность ивремя начала.
Наша работа фокусируется на предсказании поведениякаждой отдельной нагрузки. В частности, для нас остаётся актуальнойпроблема предсказания момента остановки задачи, когда нагрузка резкостановится нулевой. Предсказание для хоста во многом зависит от поведения планировщика задач в кластере, но не от поведения отдельныхкоротких задач. Из-за этих отличий, в данной работе рассматривается гораздо более короткий горизонт прогнозирования, и, вообще говоря,другие алгоритмы дают высокою точность предсказания.Тем не менее, часть материалов статей оказалась применимой и внашем исследовании.
В статье [5] вводится 9 признаков (свойств временного ряда нагрузки), характеризующих нагрузку в окне выборки, изучаются их вклады и наиболее эффективные сочетания.Согласно статье, наиболее важными для предсказания оказалисьследующие 4 из 9 признаков:– средняя нагрузка ( );– индекс честности ( , fairness index) – характеризует степеньфлуктуации нагрузки. Чем больше индекс честности, тем ста∑︀2( =1 )бильнее нагрузка: = ∑︀ 2=1 – уровневое состояние ( , type state) – пара {кол-во уникальных присутствующих уровней нагрузки; кол-во переходов междууровнями нагрузки}, характеризует разброс значений нагрузкии степень их дрожания;– первая и последняя нагрузка ( , first-last load) – пара {начальный уровень нагрузки; конечный уровень нагрузки}, грубо характеризует тренд.С некоторыми модификациями, эти признаки были использованыдля предсказания.193.3Фильтр КалманаФильтр применяется для динамического управления ресурсами вмногоуровневых (многокомпонентных) серверных приложениях, каждый уровень/компонент которых работает в отдельной виртуальной машине.
Критерием эффективности управления является максимизациипроизводительности приложения. Большое внимание уделяется выявлению связей между компонентами приложения, так как при возрастаниинагрузки на один компонент, с большой вероятностью она возрастет насвязанные с ним. Таким образом, в данных статьях [6;7;17] фильтр Калмана используется для двух основных целей. Во-первых, фильтр используется для отслеживания использования ресурсов (нагрузки) и предсказания их потребления на следующем шаге.
Во-вторых, он помогает определить зависимости между компонентами приложения.Такой подход применяется, когда нужно предсказать поведение системы на один шаг вперед. При этом можно динамически проверять точность предсказания во время исполнения, уточняя предсказанные значения на следующий интервал с учетом ошибки в предыдущем интервале.Фильтр Калмана можно применять для краткосрочных предсказаний,но не для долгосрочных, где он не эффективен [5].Использование фильтра Калмана в нашем случае осложляетсянеобходимостью учёта вероятности скорой остановки нагрузки. В этихусловиях становится неприемлемым предположение о стационарностиприращений потребления процессорного времени, и модель перехода системы должна быть более сложной. Кроме того, как отмечалось выше, использование параметров, отличных от самого потребления процессорного времени, улучшает качество предсказаний, а потому может необойтись без детальных моделей перехода и наблюдения, затрагивающихмногие параметры нагрузки и системы.20Глава 4.
CимуляцииДля оценки качества алгоритма предсказания потребления процессорного времени была реализована симуляция выполнения нагрузок нафизической машине. По задумке, эта симуляция должна повторять существенные черты нагрузок из Google Cluster Data [25]. В частности,симуляция предполагает работу контейнеров, а не гостевых операционных систем.4.1Выбор симулируемых аспектов системыРазрабатываемые алгоритм предсказания предполагается использовать для распределения, в первую очередь, процессорного времени.
Поэтому было решено изолировать распределение процессорного времениот распределения иных ресурсов. Детальное моделирование памяти требует большого количества неотносящихся к процессору предположений,например о взаимном влиянии нагрузок.
Мы не располагаем даннымидля информированного ответа на подобные вопросы.Целью симуляции является проверка и демонстрация возможностиприменения разрабатываемого алгоритма для планирования процессорного времени в виртуальных средах. Возможными инструментами балансирования нагрузки являются решения о целесообразности миграции изданной физической машины, и о безопасности входящей миграции илизапуска новой нагрузки на конкретной физической машине. Такой взглядприводит к тому, что для оценки качества работы предсказания потребления процессорного времени нет причин моделировать целый кластер.Взаимодействия между многими хостами усложнило бы оценку разумности отдельных решений.Чтобы изолировать валидацию именно алгоритма предсказанияпроцессорного времени, было решено симулировать только распределение процессорного времени, и только на одной физической машине.
Так,21оказывается возможным оценить точность выводов алгоритма о распределении вероятностей уровней потребления процессорного временив разные моменты в будущем, и возможность их применения. При этом,снимается зависимость и от эффективности работы балансировщика нагрузки, и от потребления нагрузками прочих ресурсов.4.2РеализацияКонструкция симуляции весьма проста.
Симулируется физическаямашина с некоторой производительностью процессора, на неё подаютсянагрузки на выполнение. Нагрузки расположены в некотором фиксированном порядке, порядок запуска нагрузок планировщик менять неможет. Свобода планировщика ограничена лишь серией бинарными решениями: запустить сейчас очередную нагрузку, или подождать.Шаг симуляции хоста заключается в следующих этапах:– запускать новые нагрузки из очереди, пока планировщих это позволяет– собрать текущие потребления нагрузок и их квоты– распределить имеющиеся ресурсы между нагрузками, симулируявзвешенную справедливую очередь (она реализована в текущемпланировщике выполнения задачи ядра Линукс – Completely FairScheduler), веса которой соответствуют квотам по процессорномувремени– используя доли, с которой были удовлетворены потребности нагрузки в процессорном времени, обновить прогрессы выполнениянагрузок– исключить из рассмотрения завершившиеся нагрузкиВ процессе работы симуляции, суммарное потребление ресурсов нагрузками логируется.