Главная » Просмотр файлов » Балансировка нагрузки высокопроизводительного кластера

Балансировка нагрузки высокопроизводительного кластера (1187395), страница 2

Файл №1187395 Балансировка нагрузки высокопроизводительного кластера (Балансировка нагрузки высокопроизводительного кластера) 2 страницаБалансировка нагрузки высокопроизводительного кластера (1187395) страница 22020-09-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)





Аппаратно-независимая оптимизация работы с памятью

До сих пор мы рассматривали реализацию виртуальной память на уровне аппаратного обеспечения. Однако на уровне операционной системы доступны некоторые дополнительные механизмы оптимизации. Прежде всего, это касается механизма своппинга (выгрузки страниц физической памяти). В самом деле, скорость доступа к оперативной памяти отличается от скорости доступа к диску на порядки, поэтому целесообразно минимизировать время использования HDD. Система обращается к своп-файлу при возникновении исключительной ситуации “пропуск страницы” (page fault, pf). Задача оптимизации времени работы заключается в минимизации числа этих ситуаций. Для этого необходимо выбрать грамотную стратегию выгрузки страниц. Несложно представить идеальный алгоритм откачки: достаточно убирать ту страницу, которую меньше всего будут использовать. Проблема заключается в отсутствии «оракула», который бы предсказывал дальнейшую судьбу страниц в памяти.

Так как идеальная стратегия технически неосуществима, на практике используются всевозможные её приближения.

Алгорим FIFO

Одним из простых в реализации является алгоритм FIFO (first in, first out – первым вошёл, первым вышел). Нужно просто вытеснять самую долгоживущую в памяти страницу. При этом не делается никаких предположений о важности замещённой памяти, и велик риск отгрузить на диск активно используемую страницу.

Алгоритм LRU

Более привлекательным выглядит алгоритм “least recently used”. В отличие от предыдущего, он проверяет не только время загрузки страницы, но и время её использования.

Действительно, если выделенная память давно не использовалась, то велика вероятность того, что она и дальше не будет востребована. Таким образом, будущее аппроксимируется настоящим.

Такой алгоритм работает лучше, но требует больших накладных расходов, так как вместе со страницами приходится хранить и время последнего доступа к ней. По сути, нужно организовать связанный список из недавно использованных страниц и поиск по нему. Такой список нужно обновлять при каждом обращении к памяти.

Алгоритм NFU

Упрощением предыдущего метода является алгоритм “Not frequently used”. Страницам присваиваются счётчики обращений. После прерывания нужно увеличить счётчик страницы, к которой обращались и вытеснить ту, у которой он самый маленький.

Очевидным недостатком является наличие страниц с высоким числом обращений, но которые затем перестали быть нужными. Иными словами, алгоритм ничего «не забывает».

Эвристика «рабочее множество процесса»

В основе данного подхода лежит предположение о том, что процесс использует ограниченное количество активно используемых страниц.

Пробуксовка

Действительно, будем уменьшать количество доступных страничных кадров для процесса и замерим частоту page fault’ов. Результат представлен на графике. Как проинтерпретивать этот результат? Его можно понять следующим образом. У процесса есть некое множество важных часто используемых страниц. Если это множество не помещается целиком в физической памяти, система начинает часто обращаться к диску за выгруженными страницами. Эта ситуация называется «пробуксовкой» (иначе «трэшинг», англ. «trashing»), она сильно снижает производительнось системы. Особенность трешинга в том, что его наличие не зависит от выбранного алогоритма замещения страница. Это значит,что это явление полностью связано с поведением процесса и выделенному его месту в физической памяти.

Рис. 5. Зависимость частоты страничных исключений от количества доступных страничных кадров процесса

Надо отметить, что пробуксовка хотя и происходит по вине одного процесса, но влияет на на все процессы системы. Действительно, «буксующий» процесс из-за нехватки физической памяти начнёт вытеснять страницы других процессов, в частности, активно используемые. В результате начинает они тоже станут буксовать, ситуация уподобится эпидемии.

Решение проблемы заключается в использовании алгоритмов вытеснения, учитывающих специфику работы конкретного процесса, а для этого необходимо формализовать понятие «активно используемые страницы».

Формализация

Итак, зафиксируем два момента времени работы процесса t и T, t > T. Рабочим множеством W(t, T) называется совокупность страниц, на которые ссылается процесс в интервал времени (t-T, T)

Зафиксируем t = k и будем увеличивать длину временного интервала. Результат представлен на рис. 6. [1]

Рис. 6. Изменение рабочего множеста от длины временного промежутка



Быстрый начальный рост графика обусловлен тем, что в начале работы у процесса ещё нет в памяти всех нужных ему страниц. В этот период происходят частые page faults.

Стоит отметить, что рабочий набор может меняться с течением времени. Например, из-за вызова подпрограмм. При этом велика вероятность возврата к старому множеству при частом переключении процедур. Можно сказать, что working set определяется совокупностью программного кода и программных данных.

Тем не менее, можно полагать, что PWS не будет сильно меняться на небольших временных интервалах в силу принципа локальности, принятого при проектировании операционных систем. [2]

Релизация модели «Рабочее множество»

«Лобовая» реализация данного подхода продемонстрирована на рис. 7.

Рис. 7. Алгоритм «Рабочее множество»

Стоит пояснить некоторые моменты. Каждая запись в таблице страниц дополняется двумя полями: битом обращения и временем последнего доступа. Периодически происходит прерывание от таймера, которое сбрасывает бит обращения R. При необходимости выгрузки странице нужно просканировать таблицы и определить записи со сброшенным битом и временем последнего использования, не попадающим в окно рабочего множества. Так выбираются кандидаты на выгрузку.

Модификацией этого алгоритма является алгоритм WSClock [1].

Второй способ более практический. Как было показано выше, размер выделяемых процессу кадров влияет на частоту страничных исключений. Будет отслеживать статистику page fault’ов, происходящих в этом процессе. Если оно велико, значит, рабочее множество не умещается в выделяемом наборе кадров физической памяти, и его необходимо расширить. В противном случае, можно забрать часть кадров у данного процесса в пользу других процессов.

Виртуализация.

Виртуализация это технология абстрагирования вычислительных ресурсов. Отделение оборудования от операционной системы дает возможность запускать на одной физической машине несколько операционных систем. Такое решение позволяет лучше утилизировать вычислительные мощности, сокращая расходы на питание и охлаждение физических машин. Виртуализация предоставляет широкие возможности масштабирования, репликации и миграции машин в компьютерных системах.

Все эти достоинства приводят к неуклонному росту использования виртуализационных решений в бизнесе и других областях

Типы виртуализации.

На сегодняшний день существует несколько типов виртуализации, рассмотрим основные.

Виртуализация аппаратуры.

Виртуализация аппаратуры подразумевает создание виртуальной машины, которая работает как настоящая и позволяет запускать операционную систему. Программное обеспечение, запущенное на виртуальной машине отделено от реальных аппаратных ресурсов. Реальная машина, ресурсы которой виртуализуются, называется хостовой машиной или хостом, виртуальная машина называется гостевой. Программа, запускаемая на хосте, создающая и управляющая виртуальными машинами называется гипервизором.

Далее будут рассмотрены некоторые подтипы аппаратной виртуализации.

Эмуляция.

Полностью программная эмуляция оборудования. Такой подход ведет к большим потерям производительности, так как в действительности, на одну инструкцию кода гостевой операционной системы (или другой выполняемой на виртуальной машине программы) приходится 100, а то и 1000 инструкций физического процессора. Существование полной эмуляции оправдывается возможностью на одной архитектуре эмулировать совершенно другую (архитектура), пусть и с потерями производительности. [6]

Полная виртуализация.

При полной виртуализации (full virtualization) значительная часть гостевого кода исполняется на реальном процессоре напрямую. Это дает огромную выгоду по производительности, практически мы получаем возможности в real time работать с операционной системой в виртуальной машине почти как с исполняющейся на настоящем железе. Естественно, такой подход накладывает свои ограничения и сложности. В частности, нельзя напрямую исполнять все инструкции. Гостевая операционная система не должна получить прямого доступа к аппаратным ресурсам, из соображений безопасности и просто потому, что аппаратные ресурсы разделяются между несколькими операционными системами. Роль программной прослойки, управляющей предоставлением ресурсов виртуальным машинам, решающей какие инструкции выполнять напрямую, а какие эмулировать выполняет, так называемый, гипервизор.

Полная виртуализация в отличие от эмуляции позволяет поддерживать виртуальные машины, только совместимые с хостовой машиной по используемым выполняемым инструкциям. В отличие от паравиртуализации, полная виртуализация позволяет создавать полноценные виртуальные машины, на которых можно запускать любые операционные системы, поддерживающие имеющуюся архитектуру. Теоретически подразумевается, что гостевая операционная система не должна уметь отличить, исполняется она на настоящей машине или на виртуальной.

Нужно заметить, что в некоторых источниках под полной виртуализацией понимается только то, что гостевое программное обеспечение не требует никаких изменений, то есть мы получаем полноценную систему (виртуальную). При таком подходе полная эмуляция может быть подвидом полной виртуализации (если конечно выполнено указанное требование). [4]

Аппаратная виртуализация.

По сути своей, является полной виртуализацией, но огромную часть работы берет на себя оборудование. В настоящее время существуют технологии аппаратной виртуализации процессора (VT-x у Intel, AMD-V у AMD), виртуализации памяти (так называемый “nested paging”, будет рассмотрен далее), виртуализации сетевых карт и других устройств. Аппаратная виртуализация значительно упрощает труд разработчиков виртуализационного программного обеспечения, приводит к увеличению производительности, фактически, в результате получаем производительность, приближающуюся к производительности реальных машин. Впрочем, такой подход требует еще более жесткой привязки к архитектуре, в том смысле, что, например, используя Intel vt-x, мы ограничиваемся хостовыми машинами с поддержкой Intel vt-x и гостевыми машинами с совместимыми процессорами.

Паравиртуализация.

При паравиртуализации подразумевается встраивание кода, отвечающего за виртуализацию аппаратных ресурсов в саму гостевую систему. При этом отпадает необходимость, как при полной виртуализации определять какие инструкции являются безопасными и допускаются к прямому запуску на процессоре, а какие не безопасны и требуют эмуляции. В измененной нужным образом гостевой операционной системе и не будет небезопасных инструкций, в место них возможны вызовы API гипервизора. Минус паравиртуализции в том, что она требует изменения кода гостевой системы, то есть, фактически, кроме привязки к конкретной архитектуре мы привязаны еще и к гостевой операционной системе. Здесь уже не идет речи о том, что гостевая операционная система не знает, что выполняется на виртуальной машине. С другой стороны по производительности паравиртуальные машины приближаются к реальным. [4]

Гипервизор.

Гипервизор, также называемый монитором виртуальных машин, это программа, позволяющая на одном компьютере (хосте) запускать несколько операционных систем (называемых гостевыми). Название это возникло из того, что, фактически, гипервизор находится на уровень выше супервизора (системы, управляющей запуском обычных пользовательских приложений). Гипервизор предоставляет гостевым операционным системам виртуальную аппаратную платформу, отвечает за изоляцию гостевых систем друг от друга, разделение и управление ресурсами. Гипервизор также может предоставлять средства связи между гостевыми операционными системами по типу, например, внутренней компьютерной сети.

Гипервизор предоставляет возможности по отдельному отключению или включению машин, подключению к ним различного эмулированного оборудования, а также и «проброс» реального оборудования в виртуальную машину (например, клавиатуры и мыши, или даже сетевой карты и cd-привода).

Гипервизоры разделяют на два типа: запускаемые на аппаратуре как операционные системы (на “bare metal”) и запускаемые под обычной операционной системой.

Гипервизоры первого типа представляют классическое решение проблемы. Гипервизор, запущенный прямо на аппаратуре имеет полный контроль над ней, что дает бо́льшую «прозрачность» при управлении ресурсами. Также такой подход позволяет добиться большей производительности. Из недостатков можно отметить необходимость включения в гипервизор драйверов для поддержки различного оборудования.

Гипервизоры второго типа работают под некоторой операционной системой, такой как Windows или Linux. Такой вариант более доступен обычным пользователям, кроме того исчезает необходимость в драйверах устройств, так как низкоуровневая работа с устройствами в данном случае ложится на плечи хостовой операционной системы.

Вернемся теперь к рассмотрению остальных типов виртуализации.

Виртуализация рабочего места.

Концепцией виртуализации рабочего места является отделение логического рабочего места от физической машины. Примером такой виртуализации является VDI (virtual desktop infrastructure – инфраструктура виртуального рабочего стола), при которой вместо того, чтобы оперировать с хостовым компьютером используя подключенные к нему клавиатуру, мышь и монитор, пользователь взаимодействует с ним используя другой компьютер или мобильное устройство, которое связано с хостом с помощью компьютерной сети. При этом на хостовом компьютере может быть одновременно запущенно несколько виртуальных машин для разных пользователей. Такой подход может быть рассмотрен как надстройка над описанной выше виртуализацией аппаратуры. [4]

Другая форма виртуализации рабочего места позволяет обходиться без виртуальных машин. При этом пользователи работают с удаленным мощным сервером, на котором запущена многопользовательская операционная система. Каждый пользователь имеет свою папку на сервере, где может хранить данные. Есть технология, позволяющая реализовать подобную инфраструктуру используя лишь один компьютер и несколько подключенных к нему клавиатур, мониторов и мышей.

Виртуализация программного обеспечения.

Сюда включаются три подтипа:

  1. Виртуализация уровня операционной системы

  2. Виртуализация приложений

  3. Виртуализация сервисов

Виртуализация уровня операционной системы позволяет создать несколько раздельных и независимых виртуальных машин с конкретной операционной системой, используя при этом только один экземпляр базовой операционной системы. Такой подход позволяет экономить ресурсы. Действительно, если нам нужно на одном компьютере запустить большое количество виртуальных машин с Linux, то вариант, когда для этого фактически используется одна копия операционной системы гораздо более выгоден, чем отдельный запуск Linux для каждой виртуальной машины (при этом мы получим огромное число дубликатов в оперативной памяти хостовой машины).

Виртуализация уровня приложения тесно связана с понятием переносимости программ. В данном случае приложение абстрагируется (в той или иной степени) от операционной системы, на которой оно выполняется. Сюда относится, например, возможность запуска одной и той же программы (без перекомпиляции) в разных версиях Windows. Также сюда можно отнести такие технологии как flash или java, требующие для запуска приложений специального модуля, который уже может быть различным для разных операционных систем, но сами приложения при этом переносимы.

Характеристики

Тип файла
Документ
Размер
1,03 Mb
Высшее учебное заведение

Список файлов ВКР

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6489
Авторов
на СтудИзбе
303
Средний доход
с одного платного файла
Обучение Подробнее