Математическое моделирование изменения рабочего набора процесса для интегральной живой миграции (1187402), страница 4
Текст из файла (страница 4)
Причтении страниц из образов непосредственно после восстановления страницы в пространство памяти программы, эта страница освобождаетсяв системе итеративных образов, что позволяет на всем промежутке восстановления программы поддерживать постоянное количество суммарнозанимаемой программой и образами памяти. По сравнению с решениембез дедупликации пространственная сложность уменьшается в два раза.Что для высоко загруженных программ является весьма эффективнойоптимизацией.Также для оптимизации алгоритма и его применения в реальныхусловиях была добавлена реализация объединения смежных блоков дляпоследующей очистки большими кусками, менее 1Мб. Так как погрешность в 1Мб допустима при современных объемах оперативной памяти,и это позволит существенно сократить количество системных вызовов.На приведенной схеме 4.1 показан пример прохода алгоритма дедупликации при создании снимка.
Здесь прямоугольники с скругленными18краями схематично отображают пространство виртуальной памяти процесса. А яркие цветные прямоугольники это заполненные данными блокипамяти. Так алгоритм при нахождении нового блока памяти(салатовый),сразу после его сохранения делает спуск по дереву образов путем поискав глубину. То-есть он находит во втором снимке максимальный пересекающийся с новым блоком пропуск или блок данных, дальше алгоритмспускается на следующий родительский снимок, для блока данных алгоритм также отправляет данные в накопительный блок очистки, таккак это старые данные, которые больше не нужны. Для каждого снимкаесть блок очистки который накапливает подряд идущие(в файле) данные, для последующей совместной очистки(до 1Мб). То-есть в первомснимке, например 2 и 3 блоки помеченные на удаление, лежат в файлеподряд и будут удалены одновременно.В итоге совокупность внедренных алгоритмов дает возможность дляживой миграции процесса использовать объем памяти приблизительноравный объему памяти самого процесса, то-есть разрешает проблемупрямого использования оперативной памяти, которое на порядок ускоряет процесс миграции.19Рис.
2.1: Схема дедупликации20Рис. 2.2: Подробная схема дедупликации21Глава 3. Миграция3.1. ОпределенияМиграция приложения - это процесс перемещения выполняющегосяприложения с одного вычислительного узла на другой, при котором приложение начинает работу на целевом узле с того-же состояния в которомоно пребывало сразу перед перемещением, и этот процесс не приводит кизменению результата работы приложения.Так как объемы памяти современных процессов достаточно велики [18], появляется необходимость оптимизировать процесс передачи памяти при миграции приложения, иначе процесс миграции займет слишком много времени.
Таким образом для миграции памяти был предложенмеханизм Итеративной миграции. В простом процессе миграции в начале процесс останавливается, потом сохраняется снимок памяти процесса,этот снимок передается на целевой узел и происходит восстановление памяти процесса на целевом узле из снимка. Итеративная миграция - этопроцесс миграции, который отличается от простого процесса миграциив следующем: после снятия снимка памяти процесс сразу же запускается на начальной машине и продолжает работу, пока передается снимок.Соответственно, когда снимок памяти передан, на начальной машинепоявятся изменения по сравнению с снимком.
Теперь программа вновьостанавливается и создается снимок памяти, но только тех страниц которые изменились. И такой процесс продолжается до некоторого момента.Потенциально такой процесс может снизить время остановки при миграции за счет того что на последней итерации размер передаваемой памятибудет меньше.Для оценки применимости миграции было введено понятие Живоймиграции. Живая миграция - это такая миграция, при которой за времямиграции не произойдет разрыва внешних соединений программы. Например, для сетевых соединений, время разрыва равно пяти минутам.
Нонекоторые соединения более высокого уровня могут использовать схемуKeep-alive, что еще сужает время допустимое при миграции.22Так же существует понятие Незаметная Живая Миграция(seamlesslive-migration), которое определяет миграцию, при которой влияние миграции на работу приложения будет незаметно для пользователя. К этому варианту миграции необходимо стремится, то-есть минимизироватьвидимое влияние миграции для пользователя.3.2. Существующие решенияРассмотрим существующие решения для миграции программ и методы определения момента окончания итераций при миграции. В основномдля осуществления миграции используются схожие алгоритмы, в которых для миграции программы с одного узла на другой необходимо:1.
cохранить снимок состояния программы, то-есть полное исчерпывающее описание происходящего в ее рамках процесса;2. восстановить программу из снимка состояния, таким образом, чтобы она начала работу с того-же места, имела то же состояние памяти, были открыты те же дескрипторы файлов, грубо говоря необходимо, что бы программа не заметила ни каких изменений приэтом процессе.Например, вычислительная программа восстановленная из снимкадолжна не потерять произведенный прогресс и продолжить вычислениезадачи с той же точки. И процесс сохранения и восстановления не должен повлиять на результат ее работы. Собственно осуществление этихдвух функций и есть задача CRIU.Проект CRIU направлен на решение ряда проблем которые возникали при предыдущих подходах к осуществлению миграции. Одним изсамых важных ограничений предыдущих подходов было то, что вся работа по сохранению и восстановлению программы осуществляется в ядре операционной системы.
Но внести функциональность, в связи с объемностью кода, в основное ядро не представлялось возможным. Чтомешает реальному применению таких систем, из-за невозможности постоянной поддержки ядра, развивающегося быстрыми темпами, и соответственно программ использующих новый функционал. Примерами23таких решений служат OpenVZ, Berkeley Lab Checkpoint/Restart, LinuxCheckpoint/Restart by Oren Laadan. В ряде предыдущих решений используется другой подход: необходимо или предварительное привязывание к специальной библиотеке или динамическое уже в процессе работыпрограммы, в первом случае подход тяжело применим к программам сзакрытым кодом, и в обоих случаях такая библиотека может повлиятьна работу программы или замедлить ее, что является серьезной проблемой безопасности. Примерами служат Berkeley Lab Checkpoint/Restart иDistributed MultiThreaded CheckPointing.В данных решениях в связи с вышеупомянутыми ограничениями, которые приводят к узкой применимости или замедлению миграции процесс миграции является оптимистическим, то-есть он не является оптимальным, а полагается на ряд эвристик.
В CRIU же появляется возможность более точно рассмотреть этот процесс.Во многих современных средствах миграции используется эвристические алгоритмы [14]. Есть три ключевых используемых эвристики:1. Ограничение максимального количества итераций.
Например в KVMесть предел в 30 итераций [14].2. Остановка при отскоке, то-есть если на какой-то итерации объемпереданной памяти был меньше чем объем «грязной» памяти, таким образом ситуация ухудшилась и процесс останавливается.3. Остановка при достижении некоторого необходимого минимума измененных страниц.Эти эвристики имеют право на существование, например пункт 3.Действительно, когда измененных страниц стало относительно мало, процесс может завершится успешной живой миграцией. Единственный минус этого пункта, это то, что предел задан статически, но он долженявляться некоторой характеристикой состояния программы и соединения.Остановка при отскоке имеет недостаток, так как при случайныхфлуктуациях насыщенности рабочего набора, весьма вероятно раннеезавершение итераций, не достигнув оптимума.24Ограничение на количество итераций это важный параметр которыйне позволяет процессу миграции зависать на вечно, но и увеличивает вероятность того, что живая миграция не произойдет.
Для живой миграции важно достижение некоторого минимума насыщения, иначе появляется большая вероятность неуспешного окончания процесса миграции сразрывом внешних соединений программы.Есть работа посвященная определению производительности миграции в гипервизоре Xen [17], в которой были выявлены некоторые зависимости времени миграции при эвристических критериях от параметров.Но работа не предлагает их использования для оптимизации миграции ине точна, в связи с грубым использованием средних значений параметров.3.3. мат-модель МиграцииПри итеративной миграции для достижения живой миграции, предлагается оценивать функцию насыщения рабочего набора процесса на основе измерений, полученных в процессе мониторинга. Полученная функция используется для моделирования процесса итеративной миграции.Минимизируется суммарное время простоя при миграции и находитсяоптимум количества итераций.
Вычисляется минимальное время простоя, достижимое при миграции.3.3.1. Оценка и аппроксимацияДля оценки функции насыщения по экспериментальным данным предлагается использовать метод наименьших квадратов с оценочной функцией: () = ( × + )/( × + );(3.1)В силу ограниченности графика насыщения рабочего набора, можносчитать c = 1, a - пропорционально размеру рабочего набора(WS), и таккак изначально график проходит через t = 0, M = 0, то b = 0. Таким25образом, можно рассматривать функцию: () = × /( + );(3.2)(1, 1), ..., ( , ) экспериментальные данные, - объем грязной памяти в момент времени . Тогда запишем условие минимума сумПустьмы квадратов отклонений:]︂2∑︁ [︂ × − =→ ; + (3.3)=1,Данное уравнение не решается аналитически.