ДонНТУ / Портал магистров ДонНТУ / Лысых А.А. RUS | ENG

Donetsk National Technical University Andrey Lysykh

Лысых Андрей Александрович

e-mail: lysykh@inbox.ru

Факультет: Вычислительной техники и информатики

Специальность: Программное обеспечение автоматизированных систем

Тема выпускной работы: Иcследование и моделирование производительности web-сервера Apache от влияния различных факторов

Руководитель: Костин Валерий Иванович


Биография :: Реферат :: Библиотека :: Ссылки :: Отчет о поиске :: Индивидуальное задание

Автореферат выпускной работы магистра

по теме: Иcследование и моделирование производительности web-сервера Apache от влияния различных факторов

Введение

Web представляет собой постоянно развивающуюся систему, которая расширяется за счет новых компонентов и услуг непрерывно возрастающими темпами. Приложения, реализующие такие концепции, как электронная коммерция, цифровые библиотеки, видео по требованию и дистанционное обучение, еще быстрее увеличивают Web-трафик. Некоторые популярные Web-сайты получают миллионы запросов в день, часто не обеспечивая при этом достаточно малое время отклика. Большое время отклика становится источником разочарования для многих Web-пользователей и проблемой для менеджеров многих Web-сайтов. Существуют вполне уместные предположения, что в связи с распространением беспроводных технологий и ростом числа портативных компьютеров, карманных компьютеров и мобильных телефонов с возможностью выхода в Internet, трафик Web-сайтов еще более увеличится.

Ключевыми компонентами интрасетей и Internet являются Web-серверы. В ответ на запросы они выдают информацию в виде текста, изображений, звуковых и видеофайлов, а также их разнообразные комбинации (т.е. мультимедиа). Web-службы, доступные в интрасетях и Internet, обеспечиваются большим количеством различных серверов, использующих широкий спектр аппаратного и программного обеспечения. В этих сетях серверы получают, хранят и передают дальше информацию. Большинство клиентов интрасетей и Internet - это Web-браузеры. Бизнес становится все более зависимым от использования Web, поэтому рабочие характеристики серверов (т.е. производительность) становятся жизненно важными. Чем больше информации и услуг можно получить на Web-сайте компании, тем больше запросов он получает. А чем больше запросов поучает Web-сайт, тем больше вероятность, что пользователи слишком долго будут ждать реакции на свой запрос. И тогда, как правило, Web-пользователи будут разочарованы и переключатся на другой сайт.

В данной работе рассматриваются факторы, влияющие на производительность Web-серверов, а также приводится обзор проблем, связанных с производительностью.

Цель и задачи работы

  1. Проанализировать факторы влияющие на производительность web-сервера.
  2. Проанализировать существующие подходы и методы в исследовании производительности web-сервера.
  3. Выявить взаимосвязи и построить модель.
  4. Реализовать программно построенную модель.
  5. Провести эксперименты.
  6. Исследовать эффективность реализованнной модели при различных условиях в сравнении с реальными результатами.

Актуальность разработки

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

Научная новизна

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

Практическая ценность

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

Обзор существующих исследований и разработок

Здравый смысл подсказывает, что наилучшим способом оценки производительности конкретной аппаратной платформы является ее испытание при реальной рабочей нагрузке. Однако во многих случаях этот подход оказывается неприемлемым. Поэтому принимается решение провести стандартные эталонные тесты. Эталонное тестирование (benchmarking) - это первичный метод оценки эффективности функционирования реальной системы. Эталонное тестирование предназначено для сравнительного анализа производительности (методом прогона контрольных задач). Результаты эталонного тестирования используются для оценки эффективности функционирования данной системы при четко заданной нагрузке. Популярность стандартных эталонных тестов во многом объясняется тем, что их контрольные задачи и рабочие нагрузки измеримы и повторяемы. Поэтому при выборе конфигурации компьютерной системы из предлагаемых вариантов полагаются на эталонные тесты; они также используются в качестве средств контроля и диагностики. Производители, разработчики и пользователи применяют эталонные тесты для выявления "узких мест" новых систем.

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

Способы моделирования производительности

Кратко рассмотрим основные методы моделирование работы web-сервера. В процессе проектирования могут применяться экспериментальные методы исследования, аналитическое и имитационное моделирование. Моделирование – один из наиболее распространенных методов исследования. Модель web-сервера – это такое его представление, которое состоит из определенного количества организованной информации о нем и построено с целью его изучения. При исследовании web-сервера, как правило, используются абстрактные модели, представляющие собой описания его работы на некотором языке. Абстрактная модель, представленная на языке математических отношений, называется математической моделью.

Использование аналитических методов связано с необходимостью построения математических моделей web-сервера в строгих математических терминах. Аналитические модели вычислительных систем обычно носят вероятностный характер и строятся на основе понятий аппарата теорий массового обслуживания, вероятностей и Марковских процессов, а также методов диффузной аппроксимации. Могут также применяться дифференциальные и алгебраические уравнения.

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

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

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

Краткий обзор существующих подходов в моделировании

Было совершено несколько попыток построить модель производительности web-сервера.

Van der Mei [4] моделировал web-сервер как сеть с очередью с поочередным обслуживанием. Модель использовалась, чтобы прогнозировать показатели производительности сервера и была утверждена посредством измерений и моделирования.

Wells и другие [5] сделали анализ производительности web-серверов, используя, окрашенные сети Петри. Их модель разделена на три слоя, где каждый слой моделирует определенный аспект системы. Модель имеет несколько параметров, некоторые из них известны. Неизвестные параметры определены с помощью моделирования.

Banga [6] исследовал ловушки, которые возникают в процессе генерации синтетических рабочих нагрузок Web-сервера в испытательном стенде, состоящем из небольшого количества клиентских машин. Они выявили ограничения простой схемы генерации запросов, которое лежит в основе современных систем эталонного тестирования Web-серверов. Banga предложил и оценил новую стратегию, которая исключает этим проблемы, используя набор специально созданных клиентских процессов. Начальный опыт в использовании этого метода для оценки обычного Web-сервера указал на то, что измерение работы Web-сервера при перегрузке и пульсирующих условиях трафика дает новые и важные понимания в работе Web-сервера. Его новая методология делает возможным генерацию реалистичного, пульсирующего HTTP трафика и таким образом оценку важного аспекта работы Web-серверов.

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

Текущие и планируемые результаты по теме

В этой работе описывается модель web-сервера, которая состоит из разделяемого узла процессора с прикрепленной к нему очередью. Общее количество заданий в системе ограничено. Предполагается, что процесс поступления заявок к серверу является пуассоновским, тогда как распределение времени обслуживания произвольно. Такую систему называют очередью M/G/1/K*PS. Среднее время обслуживания и максимальное число заданий - параметры, которые могут быть определены через максимальную оценку вероятности. Также получены выражения для параметров производительности web-сервера, таких как пропускная способность, среднее время ответа и вероятности блокировки.

Так как данная работа в качестве web-сервера рассматривает Apache - широко используемый многопоточный сервер сети (это означает, что запросы в нем обрабатывается собственной нитью или процессом на протяжении всего цикла жизни запроса), то рассмотрим очередь M/G/1/K с порядком обслуживания – разделение процессора. Поступление запросов согласно пуассоновскому распределению происходит с частатой λ. Время обслуживания имеет общее распределение со средним x. Поступивший запрос будет блокирован, если общее количество заданий в системе достигло предопределенного значения K. Задание в очереди получает маленький квант обслуживания и после этого приостанавливается, пока каждое другое задание не получит идентичный квант обслуживания в циклическом процессе. Когда задание получило требуемое количество обслуживания, оно покидает очередь. Такая система может также рассматриваться как сеть с очередью с одним узлом.

Функция вероятности общего количества заданий в системе имеет следующий вид,

Функция вероятности общего количества заданий в системе (1)

где p – поступающая нагрузка и она равна λx.

Очередь M/M/1/K*FCFS имеет ту же самую функция вероятности. Однако распределение времени обслуживания очереди M/M/1/K*FCFS должно быть показательным, и ее порядок обслуживания должен быть FCFS.

Web-сервер моделируется, используя очередь M/G/1/K*PS как показано на рис. 1. Запросы поступают согласно процессу Пуассона с частатой λ. Среднее время обслуживания каждого запроса x. Сервер может обрабатывать одновременно не более K запросов. Запрос будет блокирован, если это число было достигнуто. Вероятность блокировки обозначена как Pb. Поэтому норма блокированных запросов определена как λPb.

M/G/1/K*PS модель web-сервера

Рисунок 1 - M/G/1/K*PS модель web-сервера

Из (1) мы можем получить следующие три параметра производительности: среднее время ответа, пропускную способность и вероятность блокировки. Вероятности блокировки Pb равна вероятности того, что в системе содержится K заданий, то есть система заполнена,

Вероятности блокировки (2)

Пропускная способность H – норма обработанных запросов. Когда сервер достигает равновесия, H равна норме принятых запросов,

Пропускная способность (3)

Среднее время ответа T – ожидаемое время пребывания задания. Исходя из закона Литтла, мы имеем

Среднее время ответа (4)

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

Пусть Ti – это среднее время ответа, спрогнозированное моделью и T^i – это среднее время ответа, измеренное, при интенсивности поступления запросов – λ, i=1..m. Так как предполагаемое время ответа T^ – это средние из полученных результатов, то это приблизительно нормально распределенная случайная велиина со средним T и дисперсией σ2T/n, когда число показаний n является очень большим. Следовательно, пара параметров модели x и K может быть оценена, минимизируя сумму квадратов ошибок следующим образом,

Сумма квадратов ошибок (5)

В качестве приближения предполагаемая дисперсия времени ответа σ^2i может использоваться вместо σ2i.

Теперь, проблема оценки параметра становится вопросом оптимизации,

Сумма квадратов ошибок (6)

Оптимизация может быть решена различными способами, например методом найскорейшего спуска, сопряженного градиента, Ньютона и даже прямым перебором.

Выводы

В данной работе рассмотрена проблема моделирование и анализа производительности одного из самых популярных в настоящее время web-сервера Apache. Суть проблемы заключается в том, что характер трафика (запрашиваемых данных) заведомо неизвестен и необходимо максимально приближенно смоделировать производительность системы на заведомо неизвестных данных. Основная цель исследований – построение программной модели сервера. Решением данной проблемы является модель web-сервера на основе очереди M/G/1/K*PS. Данная модель достаточно хорошо повторяет реальные показатели. Ее эффективность подтверждена экспериментально.

При написании данного автореферата магистерская работа еще не завершена. Окончательное завершение: январь 2008 г. Полный текст работы и материалы по теме могут быть получены у автора или его руководителя после указанной даты.

Список литературы

  1. Менаске Д., Виргилио А. Производительность Web-служб. Анализ, оценка и планирование: Пер с англ.. – СПб: ООО «ДиаСофтЮП», 2003. – 480 с.
  2. Киллелиа П. Тюннинг веб-сервера. – СПб: Питер, 2003. – 528 с.
  3. Paul Barford, Mark Crovella. Generation Representative Web Workloads for Network and Server Performance Evaluation. – Computer Science Department, Boston University, 1997.
  4. Van der Mei, R. Hariharan, P. K. Reeser. Web Server Performance Modeling. – Telecomunication Systems, vol. 16, no. 3-4, pp. 361-378, 2001.
  5. L. Wells, S. Christensen, K. H. Mortensen. Simulation Based Performance Analysis of Web Servers. – Proceedings of the 9th International Workshop on Petri Nets and Performance Models, pp. 59-68, 2001.
  6. Gaurav Banga, Peter Druschel. Measuring the Capacity of a Web Server. - Department of Computer Science, Rice University, 1997.
  7. Louis P. Slothouber. A Model of Web Server Performance, 1995.

Биография :: Реферат :: Библиотека :: Ссылки :: Отчет о поиске :: Индивидуальное задание