Серверные платформы веб-приложений
Разработка алгоритма оптимального распределения нагрузки между разнородными по своей производительности системами при работе с одним распределенным веб-приложением. Особенности построения сервисных платформ с использованием веб-ориентированных систем.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 29.04.2017 |
Размер файла | 59,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Широкое использование сервисов, предоставляемых с использованием веб-ориентированных систем (ВОС), требует построения производительных решений в части построения сервисных платформ. Количество посетителей online-магазинов, SaaS платформ, развлекательных и образовательных порталов, растет быстрыми темпами (согласно исследованию, проведенному в сентябре 2011 года Фондом «Общественное мнение» и Microsoft [1] рост рынка интернет торговли составил около 26%, рост услуг SaaS, согласно материалам CNews Analytics, составляет более 100% в годовом исчислении [2]). Постоянный рост нагрузки на ВОС без изменения аппаратной платформы, на которой запущено приложение, приводит к постепенному увеличению времени отклика системы и, впоследствии, к частичной деградации предоставляемого сервиса ВОС. Типовыми решениями проблемы ограниченной производительности является создание многоуровневых ВОС (выделение различных аппаратных платформ для различных задач) а также переход к облачным вычислительным системам (ОВС), предполагающим использование распределенного «облака» вычислительных платформ, на которых одновременно запущен некий фрагмент или полная копия веб приложения. Распределенная нагрузка по множеству аппаратных платформ позволяет достигать высоких показателей по обрабатываемой нагрузке, масштабированию, отказоустойчивости.
Важной задачей при построении ОВС становятся внедрение в составе ОВС механизмов эффективного распределения атомарной нагрузки между аппаратными платформами, входящими в состав ОВС, контроль их функционирования, возможности динамического перераспределения нагрузки между платформами.
Современные и перспективные высоконагруженные ОВС проектируются и строятся с размещением аппаратных платформ на разных географических площадках. В связи с этим, при решении задачи балансировки нагрузки в распределенных ОВС решается две независимых задачи. Первая - распределение нагрузки между площадками, на которых размещены аппаратные ресурсы ОВС, и вторая - распределение поступающей нагрузки внутри площадки. Разработка алгоритма для оптимального горизонтального масштабирования ОВС является целью проведенной работы. сервисный веб приложение
Моделирование поведения оборудования ЦОД
Основной критерий, который показывает оптимальность распределения нагрузки внутри ЦОД -- загруженность CPU на вычислительных платформах одного уровня. Фактически -- величина загрузки CPU в рабочем диапазоне (до 70-80%) прямо пропорциональна числу пользовательских запросов, которые обрабатывает серверная платформа. Таким образом, основная задача при моделировании, корректно учесть коэффициент пропорциональности, обусловленный разницей в частоте работы CPU и количестве ядер CPU. Оценку этого коэффициента можно предварительно дать по документу Microsoft [3]. В рамках данного документа приведены количество машинных тактов, которые используются при выполнении различных действий с HTTP протоколом и возникающая разница в количестве тактов между однопроцессорной и двухпроцессорной системой при выполнении этих действий. Количество машинных тактов, в расчете на одного пользователя ВОС, сильно зависят от используемого ПО ВОС, архитектуры аппаратных средств и т.п., однако это не влияет на характер самой зависимости.
Используя приведенные цифры, можно вывести формулу (1), описывающую загрузку CPU в рабочем диапазоне (до 80%), как функцию, зависящую от числа пользовательских запросов (N).
Где, - доля загрузки CPU, обусловленная постоянными процессами ОС (практически не зависит от числа обрабатываемых пользовательских запросов);
- доля загрузки CPU, обусловленная дополнительными процессами на серверной платформе (не зависит от числа обрабатываемых пользовательских запросов, а зависит от запущенных доп. процессов);
- количество циклов машинного времени требуемого для обработки одной пользовательской сессии (зависит только от логики работы ПО ВОС и является неизменным при увеличении числа пользователей);
- тактовая частота работы процессора;
- коэффициент использования нескольких ядер в многоядерных/многопроцессорных системах
Коэффициент использования многоядерных систем зависит, прежде всего, от возможности задачи к распараллеливанию. Предполагаем, что использование кода и средств ПО достаточно хорошо оптимизировано для распараллеливания на уровне ядер/процессов (до 80% запросов может быть распределено между ядрами/процессорами) и при увеличении числа ядер коэффициент использования составляет значения, приведенные в таблице 1 [4].
Для моделирования, мы используем значения коэффициентов и составляющие не более 1%. Коэффициенты для серверов Front End и для серверов Middle End.
Для проверки адекватности и точности разработанной модели проведем расчёт загруженности CPU при различных условиях функционирования и различных ресурсах аппаратных платформ.
Рассчитаем загрузку процессоров при равномерном распределении нагрузки между серверами для трёх серверов обладающих различными аппаратными ресурсами в ситуациях, когда эти сервера выполняют функцию Front или Middle End. Расчёт проведем для различного числа пользователей (1000 и 4000).
Результаты вычисления тестовых задач поведения оборудования ЦОД
При данных расчетах используем следующие сумму коэффициентов - 5%. Коэффициенты для серверов Front End и для серверов Middle End.
Проведённые расчёты показывают, что модель адекватно отрабатывает различие в загрузке CPU при различиях в аппаратных средствах серверных платформ и их месте в структуре веб приложения, а также позволяет выполнить моделирование с учетом изменения числа пользователей системы.
Разработка алгоритма оптимального распределения нагрузки
Задачу оптимального распределения вычислительной нагрузки на концептуальном уровне можно сравнить с задачей наполнения поилок -- нескольких бочек с разными геометрическими характеристиками водой, которая поступает через трубу с вентилями. Один раз в секунду дно бочек открывается, и вся вода из них попадает в поилки. Вода же, которая переливается через края бочек, уходит в землю бесцельно. Для исключения перелива необходимо выбрать такие регулирующие значения вентилей, чтобы вода в бочках держалась на одинаковом уровне. При увеличении потока воды уровень воды во всех бочках на момент сброса должен увеличиться на одинаковую величину, чтобы не допустить перелива воды ни в одной из бочек (необработанные запросы). Именно это позволит достигнуть максимального объема полезно употребленной воды (максимальное значение числа обработанных операций в многоузловых системах). Данный процесс можно представить на графике зависимости числа обработанных запросов от числа поступивших для системы, состоящей из двух узлов А и Б.
Таким образом, одна из важнейших задач балансировки -- определение корректных и оптимальных пропорций распределения поступающих запросов и их последующая динамическая корректировка при изменении условий функционирования системы (изменение числа узлов, состава установленного и запущенных приложений, модернизация аппаратной платформы отдельных узлов и т. д.). Оптимальные пропорции в нашем случае -- это такое соотношение числа обработанных запросов различными узлами, при котором уровни загрузки этих узлов приблизительно равны.
Решить подобную задачу можно путём введения относительного рейтинга аппаратных платформ, на которых выполняются приложения. Относительный рейтинг, может быть рассчитан исходя из оценки доли запросов (), которые были отправлены на аппаратную платформу и загрузки CPU (), которая возникает в результате обработки данной доли запросов. По своему смыслу, относительный рейтинг указывает на долю запросов, которые обрабатываются аппаратной платформой в расчёте на один процент загрузки CPU. Формула (2) позволяет вычислить относительный рейтинг.
где, - относительный рейтинг аппаратной платформы;
- количество пользователей обслуживаемых сервером;
- значение загрузки CPU на аппаратной платформе
- общее количество аппаратных платформ с запущенным приложением.
Обладая сведениями об относительном рейтинге, возможно рассчитать такие значения доли запросов, отправляемых на каждую платформу, при которых значения загрузки CPU различных аппаратных платформ будут приблизительно равны. Т.е. для значений загрузки CPU будет выполняться равенство .
Это достигается при соблюдении равенства приведённого в формуле (3):
где, - относительный рейтинг аппаратной платформы;
- количество пользователей обслуживаемых сервером;
- общее количество аппаратных платформ с запущенным приложением.
Таким образом, при предварительно найденных значениях рейтинга (), становится возможным рассчитать необходимые пропорции по оптимальному распределению нагрузки. Для выполнения этого действия необходимо нормализовать полученные значения относительных рейтингов (нормализовать относительно суммарного значения 100% (4) или единицы, в зависимости от методов задания конфигурации балансирующего устройства).
Где
- доля/процент от запросов, которые требуется отправить на аппаратную платформу;
- относительный рейтинг аппаратной платформы, рассчитанный на предыдущем шаге.
Для проверки адекватности и точности алгоритма балансировки проведем моделирование функционирования распределения нагрузки внутри ЦОД для следующей архитектуры.
Для проверки всех требуемых свойств алгоритма проведем моделирование и проведем сравнение следующих типовых задач:
1) Определим максимальное количество пользователей, которые будут обслуживаться без потерь пакетов в ЦОД приведенной архитектуры и используемых аппаратных средств, в условиях равномерного распределения нагрузки и оптимизированного в соответствии с разработанным алгоритмом;
2) Проведем расчет вычисленных пропорций перераспределения нагрузки и определим максимальное количество пользователей, которые могут быть обслужены без потерь пакетов в условиях выхода из строя одной из аппаратных платформ ОВС;
3) Определим загрузку аппаратных ресурсов ВОС в условиях равномерного распределения нагрузки и оптимизированного при одинаковой пользовательской нагрузке.
Проведем расчет максимального количества пользователей, при котором загрузка CPU любой платформы не превышает 80% (находится в рабочем диапазоне) в условиях равномерного распределения нагрузки. Используем сумму коэффициентов и - 1%.
Достигнутый при моделировании при подобных начальных условиях и равномерном распределении запросов между платформами результат -- около 28451 активных пользователей.
Используя разработанный алгоритм, вычисляем оптимальные пропорции перераспределения нагрузки между серверами Middle-End. После этого, производим предельный расчет максимального числа пользователей системы, при котором загрузка CPU любой платформы не превышает 80%.
Достигнутый при оптимальном распределении запросов между платформами результат -- около 73 141 активных пользователей на тех же аппаратных ресурсах.
Используя разработанный алгоритм, проведем моделирование ситуации и вычисления пропорции перераспределения нагрузки между серверами Middle-End в условиях отказа одного из серверов (ME4). После этого, производим расчет максимального числа пользователей системы, при котором загрузка CPU любой платформы не превышает 80%.
Достигнутый при оптимальном распределении запросов между платформами результат -- около 63 850 активных пользователей на тех же аппаратных ресурсах.
Анализ полученных результатов показывает, что разработанный алгоритм перераспределил пропорции таким образом, чтобы сохранить равномерную загрузку аппаратных ресурсов в изменившихся условиях функционирования. При этом обеспечено сохранение равномерной загрузки между аппаратными средствами.
Теперь проведем моделирование загрузки CPU аппаратных средств при равной пользовательской нагрузке (20 тыс. пользователей) в условиях равномерного и оптимизированного распределения нагрузки.
Проведенное моделирование показывает, что разработанный алгоритм обеспечивает решение задачи балансировки нагрузки в пределах ЦОД со следующими сводными характеристиками:
1) загрузка процессоров всех аппаратных платформ находится на максимально низком уровне при заданной величине нагрузки на ВОС для всех аппаратных платформ образующих ВОС (28,7 при равномерном распределении и 22,2 при использовании алгоритма оптимальной балансировки);
2) разброс прогнозируемой загрузки процессоров не превысил 4% в пределах одного архитектурного уровня одного ЦОД (77% - 80%);
3) для аппаратных платформ находящихся в аварийном состоянии величина направляемой на них нагрузки составляет 0% от общей нагрузки (доля запросов на ME4 выставлена в 0%).
Таким образом, использование разработанного алгоритма балансировки позволяет обеспечить эффективную балансировку и горизонтальное масштабирование аппаратных средств серверных платформ в условиях разнообразия используемых аппаратных ресурсов внутри одной площадки размещения аппаратных средств. При этом, алгоритм обладает необходимыми средствами адаптации к изменяющимся условиям в функционировании аппаратных средств ОВС.
Список литературы
1 Рынок e-commerce в России [Электронный ресурс] //Microsoft: [web-сайт] . - USA, 2011. - Режим доступа: http://www.microsoft.com/ru-ru/cpe/ecommerce.aspx. - 24.10.2012.
2 Мария Попова, Любовь Байдалина Рынок SaaS в России разгоняется и нагревается [Электронный ресурс] //CNewsAnalytics: [web-сайт] . - М, 2011. - Режим доступа: http://www.cnews.ru/reviews/free/saas/articles/articles1.shtml. - 24.10.2012
3 Best Practices for Performance in ISA Server 2004 [Electronic resource] //Microsoft: [web-сайт] . - USA, 2012. - Mode Access: http://technet.microsoft.com/library/cc302518.aspx#PlanningISAServerCapacity. - 26.03.2013.
4 Сергей Пахомов Эра многоядерных энергоэффективных процессоров [Электронный ресурс] //КомпьютерПресс: [web-сайт] . - М, 2006. - Режим доступа: http://www.compress.ru/article.aspx?id=16962&iid=786. - 26.03.2013.
Размещено на Allbest.ru
...Подобные документы
Знакомство с особенностями и этапами разработки приложения для платформы Android. Рассмотрение функций персонажа: бег, прыжок, взаимодействие с объектами. Анализ блок-схемы алгоритма генерации платформ. Способы настройки функционала рабочей области.
дипломная работа [3,4 M], добавлен 19.01.2017Основные направления в истории развития компьютерной индустрии. Специфика информационных программных систем. Основные задачи информационных систем. Классификация архитектур информационных приложений. Файл-серверные и клиент-серверные приложения.
презентация [110,8 K], добавлен 11.04.2013Процессы индивидуализации, интеллектуализации и веб-ориентации традиционных обучающих систем как важные особенности современных компьютерных технологий обучения. Знакомство с программными средствами для построения компетентностно-ориентированных моделей.
дипломная работа [2,7 M], добавлен 04.10.2014Программные продукты для решения задачи построения оптимального маршрута. Выбор аппаратных и программных средств для построения маршрута обхода пациентов. Математическая модель муравьиного алгоритма: состав, структура, тестирование, отладка, реализация.
дипломная работа [1,9 M], добавлен 03.12.2017Технические различия между операционными системами UNIX и Linux. Архитектура аппаратного обеспечения и ядро ОС. Поддержка файловой системы. Доступность приложений. Системное администрирование. Разработка программы на языке Си, реализующей алгоритм стека.
курсовая работа [1,0 M], добавлен 28.05.2015Математическая модель алгоритма с модификацией муравьиной колонии. Выбор аппаратных и программных средств для разработки программы. Особенность построения оптимального маршрута обхода пациентов. Характеристика тестирования и отладки данного проекта.
дипломная работа [1,9 M], добавлен 17.11.2017Разработка приложений на платформе Win32 для исследования взаимодействия между процессами через отображение файла в память. Модель приложений "клиент - сервер". Описание алгоритма работы программы-клиента и программы-сервера. Результаты работы приложений.
курсовая работа [869,3 K], добавлен 18.05.2014Технология создания многопоточных приложений в современных системах программирования с использованием языка C# в Visual Studio.NET. Разработка алгоритма и структуры программы. Описание и особенности тестирования приложения с разным количеством потоков.
курсовая работа [773,0 K], добавлен 14.03.2013Рассмотрение игр, схожих по жанру и модели распространения с разрабатываемым приложением. Выбор среды разработки и сторонних библиотек. Проектирование интерфейса и подготовка графических материалов приложения. Особенности введения в игру микротрансакций.
дипломная работа [3,1 M], добавлен 18.11.2017Определение оптимального пути между контактными площадками. Возможность построения графического изображения поля трассировки. Разработка математической модели системы. Принцип волнового алгоритма. Проектирование пользовательского интерфейса, его схема.
контрольная работа [371,1 K], добавлен 19.01.2013Стратегия развития процессоров Intel. Структурная организация современных универсальных микропроцессоров. Особенности многоядерной процессорной микроархитектуры Intel Core, Intel Nehalem, Intel Westmere. Серверные платформы Intel c использованием Xeon.
реферат [36,5 K], добавлен 07.01.2015Разработка инфологической и даталогической модели, обобщенного алгоритма и средств защиты программы по автоматизации начисления заработной платы на основе платформы 1С:Предприятие 7.7, входные и выходные параметры, программный код проведения документа.
курсовая работа [2,0 M], добавлен 23.06.2011Сущность понятия "имитационное моделирование". Подклассы систем, ориентированных на системное и логическое моделирование. Способы построения моделирующего алгоритма. Имитационные модели производственных процессов. Структура обобщенной имитационной модели.
реферат [453,5 K], добавлен 26.10.2010Понятие и характеристика основных систем электронных платежей, используемые методики и средства. Порядок и основные принципы создания соответствующей платформы. Главные показатели ее производительности, оценка значения на современном этапе и перспективы.
презентация [264,0 K], добавлен 30.05.2014Разработка алгоритма и программы на языке С++ для генерации значений случайных величин, имеющих нормальный закон распределения. Проверка нулевой гипотезы об отсутствии статистически значимых различий между двумя выборками с помощью t-критерия Стьюдента.
лабораторная работа [763,5 K], добавлен 19.02.2014Разработка алгоритма и программы для распознавания пола по фотографии с использованием искусственной нейронной сети. Создание алгоритмов: математического, работы с приложением, установки весов, реализации функции активации и обучения нейронной сети.
курсовая работа [1,0 M], добавлен 05.01.2013Анализ решений и выбор платформы виртуализации. Обоснование выбора VMwareESXi в качестве платформы для создания учебного класса. Системные требования к аппаратной части для выбранной платформы. Создание макета на основе сервера виртуализации VMwareESXi.
дипломная работа [4,1 M], добавлен 12.04.2017Компоненты моделей геоинформационных систем, их взаимосвязь с координатными системами. Векторные нетопологическая и топологическая модели геометрической компоненты данных в ГИС. Послойное и геореляционное представление и вложение данных в серверные СУБД.
презентация [4,5 M], добавлен 02.10.2013Общая характеристика и функциональное назначение проектируемого программного обеспечения, требования к нему. Разработка и описание интерфейса клиентской и серверной части. Описание алгоритма и программной реализации приложения. Схема базы данных.
курсовая работа [35,4 K], добавлен 12.05.2013Серверные операционные системы, их особенности и сферы применения. Функции и ресурсы операционной системы Windows Server 2003. Сервер как программный компонент вычислительной системы. Аппаратные и серверные решения. Минимальные системные требования.
презентация [1005,9 K], добавлен 05.12.2013