Математическое моделирование изменения рабочего набора процесса для интегральной живой миграции (1187402), страница 7
Текст из файла (страница 7)
Произошедшие страничные ошибкибудут обработаны без дополнительных задержек, так как данные страницы процесса уже содержится в памяти. По этому, данное отслеживаниестраниц это очень быстрый и эффективный механизм.Далее для определения состояния грязной памяти необходимо прочитать файл /proc/<pid>/pagemap, и просматривать в нем состояние, так41называемых, soft-dirty bits. В CRIU для сбора данных о грязной памяти процесс останавливается, так как требуется получить консистентныйснимок состояния. Для целей мониторинга же можно и нужно использовать не консистентное, а приближенное состояние грязной памяти.
Этопозволяет не влиять на работу исследуемого процесса и так как производится большое количество измерений, то отклонение от реальности приизмерении будет минимально.4.3.3. AlglibПосле того как собраны данные об использовании грязной памятипроцессом, данные аппроксимируются выбранной функцией);. () = /(+Это осуществляется методом наименьших квадратов с помощью ал-горитма Левенберга-Маквардта. В реализации системы для этого используется свободное программное обеспечение ALGLIB - библиотекадля численного анализа.4.3.4.
p.HAULДля осуществления живой миграции существует надстройка над CRIUнаписанная на языке Python, это набор скриптов которые с использованием CRIU сервиса осуществляют миграцию программ. Для миграциидостаточно запустить сервер p.haul на принимающей стороне, на исходном сервере запустить клиент и выбрать необходимую программу. Используемый алгоритм итеративной миграции аналогичен алгоритму используемому в OpenVZ.4.3.5. ТестированиеТестирование прогнозирования живой миграции проводилось между двумя виртуальными машинами в рамках одной хостовой системы.Каждая виртуальная машина имела выделенное ядро процессора, чтобы исключить взаимовлияние установок.Было осуществлено тестирование скорости для передачи данных, определены задержка и коэффициент пропорциональности, согласно используемой модели.
Была запущена копия исследуемой программы, которая42создает высокую нагрузку на оперативную память, записывая в произвольные регионы случайные данные. Модуль определения окончаниямиграции провел мониторинг насыщения рабочего набора процесса, осуществил предсказание поведения по модели используя полученные входные параметры затем построил график модели и определил оптимумитераций.Далее была проведена итеративная миграция исследуемой программы с помощью p.haul и CRIU. Полученные данные о итерациях в этомпроцессе составили второй график.
На рисунке4.2 приведены оба графика, видно что отклонение реальных данных от модели на протяженииитераций не велико. И при использовании результата предсказания оптимума количества итераций, можно осуществлять миграцию с меньшимвлиянием на мигрируемый процесс, чем при использовании эвристических критериев.Конечно в данном тестировании использовался модельный процесснад которым проводились эксперименты, в дальнейшей работе предполагается исследовать работу алгоритма на реальных программах, и соответствующим образом дорабатывать реализацию и модель.43Рис.
4.2: Сравнение модели и эксперимента44ЗаключениеВ результате данной магистерской диссертации была изучена актуальная проблема живой миграции приложений, которая имеет высокуюважность для современных компьютерных систем. Приведено сравнениеинструментов сохранения и восстановления и обоснование выбора, дляиспользования в миграции программ, системы CRIU.Для оптимизации процесса миграции программ, а в частности решения проблемы использования оперативной памяти, был разработан алгоритм дедупликации итеративных снимков памяти. Он учитывает специфику механизма хранения и создания снимков памяти, используемогокак в CRIU, так и в многих других системах сохранения и восстановления. Была осуществлена эффективная реализация алгоритма и добавлена в проект CRIU.
Для данной функциональности было разработанопокрывающее множество тестов. При прохождении тестирования былапоказана теоретически предсказанная эффективность и надежность алгоритма.Была построена модель процесса живой миграции и на ее основе, выработан алгоритм определения окончания итераций, оптимизирующийсуммарное влияние процесса миграции на мигрируемый процесс. Данный алгоритм реализован в качестве прототипа. Было проведено тестирование прототипа алгоритма на тестовом стенде, в качестве мигрируемой программы был взят тестовый процесс активно использующий память. Сравнение модели и реального процесса миграции показывает, чтохотя и происходят отклонения от модели, предсказание количества итераций помогает уменьшить время простоя мигрируемого процесса.В дальнейшем планируется протестировать алгоритмы на реальныхприложениях и уточнить модель и усовершенствовать реализацию, дляиспользования на практике.45Литература1.
Linus Torvalds, Andrew Morton; Merge branch ’akpm’ (aka "Andrew’spatch-bomb, take two") // Linux Kernel Mailing List, 4 Apr. 2012.2. Paul H Hargrove, Jason C Duell;(BLCR) for Linux Clusters //Berkeley Lab Checkpoint/RestartJournal of Physics Conference Series,volume 46:494–499, 2006.3. Jason C Duell;The Design and Implementation of Berkeley Lab’sLinux Checkpoint/Restart // Berkeley Lab Technical Report, 17 pages,December, 2002.4.
Jason Ansel, Kapil Arya and Gene Cooperman;DMTCP: TransparentCheckpointing for Cluster Computations and the Desktop // 23rd IEEEInternational Parallel and Distributed Processing Symposium, 12 pages,May, 2009.5. Michael Rieker, Jason Ansel; Transparent user-level checkpointing for theNative POSIX Thread Library for Linux // International Conference onParallel and Distributed Processing Techniques and Applications, 492–498, 2006.6.
Oren Laadan, Serge E. Hallyn;Checkpoint-Restart in Linux //Linux-CR: Transparent ApplicationProceedings of the 12th Annual LinuxSymposium, 16 pages, Jul. 2010.7. Pavel Emelyanov; posix timers: Extend kernel API to report more infoabout timers // Linux Kernel Mailing List [Электронный ресурс],//lkml.org/lkml/2013/2/14/273,8. Pavel Tikhomirov;Feb. 2013.posix-timers: Show clock ID in proc file //Kernel Mailing List [Электронный ресурс],2013/5/17/276,May, 2013.46https:Linuxhttps://lkml.org/lkml/9.fallocate(2) //Linux Programmer’s Manual [Электронный ресурс],http://www.kernel.org/doc/man-pages/,Apr. 2013.10. Kaj Madsen, Hans Bruun, Ole Tingleff;Method //The Levenberg–MarquardtMethods for non-linear least squares problems, 24–29, 2ndEdition, Apr. 2004.11.
Daniel P. Bovet, Marco Cesati;Understanding the Linux Kernel //O’Reilly Media, Inc., 3nd Edition, Nov. 2005.12. Кирилл Колышкин, Павел Емельянов;CRIU: больше, чем живаямиграция для Linux контейнеров // Yet Another Conference, 2012.13. Андрей Вагин; CRIU – новый амбициозный проект для сохранения и восстановления процессов ////habrahabr.ru/post/148413/,[Электронный ресурс]http:Июль 2012.14. Avi Kivity, Yaniv Kamay, Dor Laor, Uri Lublin, Anthony Liguori;kvm: the Linux Virtual Machine Monitor //Proceedings of the LinuxSymposium, June 27th–30th, 2007.15.
Michael Kerrisk; LCE: Checkpoint/restore in user space: are we thereyet? // Linux Weekly News [Электронный ресурс],Articles/525675/,http://lwn.net/Nov. 20, 2012.16. Stuart Hacking, Benoıt Hudzia; Improving the live migration process oflarge enterprise applications // Virtualization technologies in distributedcomputing, 51–58, 2009.17. Sherif Akoush, Ripduman Sohan, Andrew Rice, Andrew W. Moore andAndy Hopper; Predicting the Performance of Virtual Machine Migration// University of Cambridge Computer Laboratory, 10 pages, 2010.18. KhaledZ.Ibrahim,StevenHofmeyr,CostinIancu,EricRoman;Optimized Pre-Copy Live Migration for Memory Intensive Applications//ProceedingsofInternationalComputing, 11 pages, 2011.47ConferenceforHighPerformance19.
Тихомиров П.О.; Live-миграция приложений в CRIU // Труды 55-йнаучной конференции МФТИ, 2013.48.