Тогда, доказывается, что необходимым ограничением на поведение функции желаемого потребления является:
Эксперимент, подтверждающий справедливость данного утверждения, будет рассмотрен позднее.
Далее рассматривается случай невозобновляемых ресурсов (дисковое пространство, виртуальная память и так далее) и частично возобновляемых ресурсов (физическая память ЭВМ. промежуточный файл образа, создаваемого системами резервного копирования и так далее).
При допущении, что при отсутствии эффектов внешней среды
Выводится
Далее показывается, что в случае с такого рода ресурсами мы можем управлять:
· ограничивая скорость потребления ресурсов, - мягкий способ (за скорость потребления, фактически, отвечает коэффициент dFi(t*)/dt*)
· запрещая потреблять ресурсы, - жесткий способ (в данном случае это означает, что за счет средств операционной системы и нашего управления R*(t)!=R(t))
К подобным принципам управления и сводятся большинство современных алгоритмов управления ресурсами.
В качестве примера первого случая управления рассматривается Windows сервис, обслуживающий запросы. Каждый запрос обслуживается отдельной нитью (для упрощения считаем, что при приходе каждого нового запроса происходит создание новой нити обслуживания данного запроса). Данный пример достаточно показателен и важен для систем виртуализации, поскольку в недружественном окружении деятельность компьютера, содержащего данный сервис, может быть парализовано за счет атаки отказа в доступе (Denial of Service attack - DoS).
Далее рассматривается ситуация DoS атаки на такой сервер и показывается, с использованием (14), что при выполнение утверждения,
где k - предельно допустимый тип нагрузки для сервиса, возможно предотвращение DoS атаки. Отмечается, что в случае если, например, сервис в пиковой нагрузке может принимать не более 10% новых запросов в секунду, задача нашего управления задерживать выход из функции ntCreateThread на 100мс, что позволит, хотя и в ущерб производительности сервиса, обеспечить жизнеспособность всего компьютера.
Глава 3 посвящена разработке практического алгоритма, позволяющего обеспечить лимит на потребление ресурсов в среднем.
Используя предпосылки из главы 2, предлагается следующий принципиальный алгоритм (Gi - среднее значение функции фактического потребления Ci, gi - лимит на потребление ресурсов в среднем):
1) находясь в момент времени T, мы оцениваем значение функции Gi(T+d)
2) если Gesti=Gi(T+d)>gi, то мы запрещаем выделение процессорного времени процессу на интервале от T до T+d
3) в противном случае мы не вмешиваемся
Показывается, что
Полученный алгоритм и выражения (18) и (19) используется для создания самостоятельных решений, использующих технологию двухуровневого управления.
Далее рассматриваются особенности планирования процессов в ОС Windows Server 2003 и детально рассматривается (с целью проиллюстрировать применение полученной модели) поведение коммерческого продукта Aurema, использующего часть рассмотренных особенностей планирования и фильтр Калмана с активной обратной связью для достижения цели аналогичной рассмотренной выше в данной главе.
Рассматривается случай, когда все нити в системе готовы потребить время центрального процессора. Как и ранее обозначим количество нитей через N.
В отсутствие конкуренции функция желаемого потребления каждой нити имеет вид, представленный на рисунке
Как и говорилось выше, в случае однопроцессорной системы и настроенной по умолчанию Windows 2003 переключение контекста будет происходить каждые 12 интервалов таймера или примерно 120 мсек.
Иными словами функция идеального потребления будет иметь вид, показанный на рисунке ниже (для упрощения рисунок приведен в случае наличия 2-ух нитей в системе) - то есть классический Round-Robin в случае равных гарантий и FairSched в случае различных гарантий процессам.
Рис 4. Функция желаемого потребления
Рис 5. Идеальная функция потребления
Исходя из вышеизложенного, функция фактического потребления будет совпадать с функцией идеального потребления до появления эффекта CPU starvation и начала активности balance manager.
Далее, используя формулу (14), выясняется, в качестве примера, какие предположения системе нужно сделать, чтобы достичь точности управления скажем в 5%.
Итак, в нашем случае balance manager просыпается раз в секунду (или 100 квантов) и дает нитям, не выполнявшимся на протяжение 4 секунд (или 400 квантов) двойной квант времени (2 кванта или 20мсек), которым мы явно управлять не можем.
Тогда наше возмущение DRi можно оценить как 0 при отсутствие эффекта balance manager.
Эффект balance manager начинает сказываться при достаточно большом числе нитей. Критическое число нитей можно оценить из следующих соображений:
· Каждая нить выполняется 12 квантов (в общем случае K квантов).
· Повторно она выполнится через 12*N квантов (в общем случае K*N квантов).
· Таким образом, если K*N превысит 400 квантов, начнет сказываться влияние balance manager.
Далее с использованием данных соображений и формулы (14) показывается, что
(где первое слагаемое и является оценкой эффекта ОС).
Окончательная формула зависимости размера интервала DT, на котором точность управления равна 5%, от числа нитей N в системе имеет вид:
Далее приводится иллюстрация эффекта при работе balance manager на реальной системе и теоретическая (следующая из нашей модели) зависимость точности управления на интервалах около 1 секунды или 100 квантов от числа нитей.
Рис 6. Теоретическая зависимость точности управления от количества нитей в системе
Затем приводятся результаты практических измерений для продукта Aurema
На рисунке ниже представлена реальная и теоретическая зависимости доли процессорного времени от количества нитей.
Рис 7. Теоретическая и реальная зависимость доли времени центрального процессора от числа нитей
Измеренная в результате эксперимента зависимость точности управления от количества нитей представлена ниже
Рис 8. Экспериментальная зависимость величины ошибки от количества нитей в системе
Таким образом, результат проведенных измерений подтверждает целесообразность использования нашей модели для обеспечения требуемого качества управления.
В заключении приведены основные результаты исследования.
Основные результаты и выводы диссертации
1. Разработана математическая модель двухуровневого управления ресурсами в ОС с закрытыми исходными кодами. В рамках данной модели объяснены существующие механизмы контроля ресурсов в современных ОС.
2. Исследованы и явно выражены ограничения, которые нужно наложить на управляющую систему нижнего уровня, чтобы обеспечить требуемое качество управления.
3. Разработана математическая модель и метод группового управления ресурсами центрального процессора в условиях функционирования виртуальных выделенных серверов с целью ограничения сверху потребления времени центрального процессора.
4. Разработанные модели реализованы в виде комплекса программ, обеспечивающего требуемое качество обслуживания. Проведен ряд экспериментов на реальных программных комплексах, результаты экспериментов полностью подтвердили справедливость предложенных моделей.
В приложениях приведены основные характеристики системы Virtuozzo и описание ряда других проектов в области виртуализации ресурсов, иллюстрирующих эффективность разработанных в диссертации моделей.
Список публикаций по теме диссертации
1. Луковников И., Коротаев К., Кобец А. Проблемы управления распределяемыми ресурсами ОС // Информационные технологии. - М. 2006. - №10 С. 71-78.
2. Коротаев К., Емельянов П., Луковников И. Модель жесткого ограничения выделяемого процессорного времени в задаче планирования процессов // Вестник НГУ / Новосибирский университет. Сер.: Информационные технологии. - 2006. - Т. 1, вып. 2. - С. 99-109.
3. Луковников И., Емельянов П., Коротаев К. Основные проблемы реализации алгоритмов пропорционального планирования/ / Процессы и методы обработки информации: Сб.ст. - М.: Моск. физико-техн. ин-т, 2006. - C. 86-91.
4. Луковников И., Тормасов А., Коротаев К. и др, Основные проблемы обеспечения точности управления при наложенном управлении ресурсами в современных операционных системах // Процессы и методы обработки информации: Сб.ст. - М: Моск. физико-техн. ин-т, 2006. - С. 237-242.
5. Коротаев К., Луковников В., Луковников И. О существующих планировщиках задач, пропорциональности распределяемого ими процессорного времени и способах улучшения качества обслуживания // Научное творчество молодежи. Часть I. Материалы X Всероссийской научно-практической конференции. - Кемерово: Кемеровский гос. универ-т, - С. 74.
6. Коротаев К., Луковников И. и др. `Честный'' планировщик задач на основе аппроксимации идеального времени (ITAFS): новый подкласс пропорционально-долевых алгоритмов планирования задач для процессоров // Научное творчество молодежи. Часть I. Материалы X Всероссийской научно-практической конференции. - Кемерово: Кемеровский гос. универ-т, - С. 75.
7. Тормасов А., Луковников И., `Алгоритмы управления ресурсами операционных систем // Современные проблемы фундаментальных и прикладных наук. Часть VII. Управление и прикладная математика: Труды XLVII научной конференции. - М. - Долгопрудный: Моск. физ.-техн. ин-т, 2004. - С. 41.
8. Коротаев К., Луковников В., Луковников И. Многоуровневый планировщик процессов для изоляции процессов и групп пользователей. Проблемы балансировки нагрузки и пути их преодоления // Приоритетные направления модернизации общего образования. Материалы Всероссийской научно-практической конференции, посвященной 60-летию ТОИПКРО. -Т. 1. - Томск: ТОИПКРО, 2006. - С. 174--175.
9. Луковников В., Луковников И., Коротаев К, Алгоритмы управления ресурсами операционных систем// Приоритетные направления модернизации общего образования. Материалы Всероссийской научно-практической конференции, посвященной 60-летию ТОИПКРО. -Т. 1. - Томск: ТОИПКРО, 2006. - С. 177--180.