Главная страница
Контакты

    Басты бет


Курсовая работа 21 с., 6 рис., 2 табл., 10 источников. Web-сервера, сравнение производительности web-серверов, apache, iis, nginx

жүктеу 140.52 Kb.



жүктеу 140.52 Kb.
Дата03.04.2018
өлшемі140.52 Kb.

Курсовая работа 21 с., 6 рис., 2 табл., 10 источников. Web-сервера, сравнение производительности web-серверов, apache, iis, nginx


РЕФЕРАТ


Курсовая работа 21 с., 6 рис., 2 табл., 10 источников.

WEB-СЕРВЕРА, СРАВНЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ WEB-СЕРВЕРОВ, APACHE, IIS, NGINX

Объектом разработки данной курсовой работы являются web-сервера.

Целью работы является установка различных web-серверов на локальный компьютер для последующего сравнительного тестирования.

В результате выполнения курсовой работы были получены значения сравнительной производительности популярных web-серверов.

СОДЕРЖАНИЕ


РЕФЕРАТ 1

СОДЕРЖАНИЕ 2

ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ 3

ВВЕДЕНИЕ 4

1 Основные функции web-серверов 5

2 Критерии выбора web-серверов 7

3 Обзор web-серверов 10

3.1 Статистические Данные 10

3.2 Описание используемых web-серверов 11

3.2.1 Apache HTTP-сервер 2.4.4 11

3.2.2 Internet Information Services (IIS) 7.5 11

3.2.3 nginx 1.9 12

4 Тесты 13

4.1 Оборудование и методы тестирования 13

4.2 Тесты 15

15


4.3 Расход памяти 18

ЗАКЛЮЧЕНИЕ 19

ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ


HTTP

HypertextTransferProtocol, протокол передачи гипертекстовых сообщений


ВВЕДЕНИЕ


В наше время, большинству людей трудно представить свое окружение без интернета. Сейчас интернет стал частью культуры и повседневной жизни [1]. Ведь в нем можно найти информацию на любой вкус, помимо, он может являться средством связи, источником развлечений, средством хранения данных и т.д. Но, пожалуй, в первую очередь интернет это, все-таки, web-страницы. Web-страницы — это то, что мы наблюдаем в рамках своих обозревателей. Это какой либо текст, гиперссылки, изображения, приложения, видео и т.п., иными словами это контент. Он поступает с web-серверов, посредством общения и обмена информацией web-обозревателя и серверов. На данный момент количество web-сайтов, превышает миллиард и эти цифры только растут [2]. Естественно, web-сайту не обойтись без web-сервера. Без последних не было бы ни «всемирной паутины», ни корпоративных сетей, по крайней мере, в том виде, в котором мы имеем это сейчас.

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



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

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

1 Основные функции web-серверов


Изначально, Web была создана для распространения гипертекстовых документов [3]. Со временем функциональная часть росла, возможностей web становилось больше. Сейчас web обладает дюжинной функциональностью, и в первую очередь этим обеспечивают web-сервера.

Основные функции, выполняемые web-серверами:



  • Прием запросов от web-браузеров по протоколу HTTP с использованием сетевых протоколов TPC/IP;

  • Выполнение поиска и отсылки файлов с гипертекстом и/или каких-либо документов в web-обозреватель по протоколу HTTP;

  • Обслуживание и обработка запросов, типа: mailto, telnet, ftp и другие;

  • Запуск прикладных программ на web-сервере с передачей и возвратом параметров обработки через интерфейс CGI;

  • Работа и обслуживание навигационных карт изображений (image map);

  • Загрузка java-приложений;

  • Администрирование и оперативное управление сервером;

  • Авторизация пользователей и их аутентификация;

  • Ведения регистрационного журнала обращения пользователей к различным ресурсам;

  • Поддержка динамических страниц;

  • Поддержка защищенного протокола HTTPS для защищенных соединений с пользователями.

Web-браузеры и Web-серверы сообщаются через протокол HTTP, это простой протокол запросов и ответов для пересылки информации с использованием TCP/IP. Работает это следующим образом: web-сервер получает запрос, находит файл, посылает его браузеру и потом разрывает соединение с ним. Затем web-браузер выводит загруженный из сети HTML-документ на экран пользователя.

Web-сервер может хранить любые данные, это может быть текст, изображения, видео и тому подобное. В совокупности, на web-сервере могут работать прикладные программы, например процессоры поиска и средства связи с базами данных. Для их создания, зачастую, используются такие стандарты, как общий шлюзовой интерфейс (CGI - CommonGatewayInterface), языки сценариев, (например JavaScript), а также полноценные языки программирования(Java, Basic и др.).


2 Критерии выбора web-серверов


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

Установка большинства web-серверов происходит довольно легко. Наибольшую трудоемкость составляет дальнейшая настройка конфигурации сервера.

Что касается средств локального управления - они позволяют управлять сервером с его консоли, а средства дистанционного управления - с другого сетевого компьютера.

Средства управления содержательным материалом – это общая организация узла web, они содержат инструменты наподобие HTML-редакторов и преобразователей форматов документов, инструменты проверки правильности внутренних и внешних гипертекстовых связей. Администраторы сервера должны сами выбрать, где будут храниться файлы, и каким образом к ним будет получать доступ конечный пользователь. Для этого необходимо установить соответствие между логическими URL и физическими каталогами.

Так как в наши дни web-сервера активно используются в интрасетях, а так же используются для коммерческих целей в сети Internet, то это задает вопрос о безопасности. Часто системы web-сервера предоставляют избыточный, или недостаточный уровень безопасности для сегодняшних интрасетей. Для организации доступа внутри компании у вас есть выбор: использовать незашифрованные пароли, с передачей их по каналам связи, или же использовать SSL(англ. secure sockets layer — уровень защищённых сокетов), сложного и, относительно, медленного метода, используемого для шифровки паролей и данных. Так же существует различные комплексы защиты сетей, например, игнорирование длинных и сложных запросов, которые могут загрузить сервер так, что он перестанет отвечать на простые запросы пользователей.

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

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

Для подразделенческих интрасетей, лучше других подойдет пакет Microsoft IIS. Он отличается простотой инсталляции и настройки конфигурации; он хорошо интегрирован со средствами управления доступом, программой контроля функционирования PerformanceMonitor и утилитой просмотра журнала событий EventViewer, имеющейся в ОС WindowsNT; для динамической передачи информации из баз данных в ней предлагается ряд инструментов. IIS характеризуется весьма высоким быстродействием.

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

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


3 Обзор web-серверов



3.1 Статистические Данные


По данным сайта Netcraft, в рейтинге активных, мировых, сайтов Apache является несомненным лидером и прочно держит свои позиции не первый год [4]. Его доля составляет 50.72%от рынка (89.8 миллионов хостов). На втором месте держится nginx с долей в 14.82% . На третьем месте IIS, его доля 10.55%, что весьма достойный показатель в виду причин указанных ниже. При сужении выборки до миллиона крупнейших web-сайтов доли Apache, nginx и IIS составляют 49.57%, 21.09% и 12.27%, соответственно.

c:\users\влад\desktop\курс\0_1421652627.png

Рисунок - Статистика web-серверов в мире

Что касается русской части Интернет (т.н. рунет), то согласно представленным данным, наибольшей популярностью пользуется web-сервер nginx (53,2%) [5]. На второй позиции фигурирует Apache с 36,5% установок, так же в тройке лидеров Microsoft IIS (6,1%).



Рисунок - Статистика web-серверов в России

3.2 Описание используемых web-серверов



3.2.1 Apache HTTP-сервер 2.4.4


Apache HTTP-сервер (назван именем племен североамериканских индейцев апачей; помимо, является сокращением от англ. a patchy server – свободный web-сервер). Был написан в начале 1995 года открытым сообществом разработчиков под эгидой Apache Software Foundation. Первая версия была написана на базе NCSA HTTPd и исправляла на тот момент его недостатки. Позже он был переписан с нуля. Ядро сервера полностью написано на языке программирования C. С 1996 и до настоящего времени является самым популярным HTTP-сервером в интернете [6,7].

Основным критерием выбора данного сервера послужило то, что он является самым популярным web-сервером в интернете, а так же его достаточно простая установка и настройка.


3.2.2 Internet Information Services (IIS) 7.5


IIS (Internet Information Services, до 5.1 Internet Information Server) – проприетарный (частное, не свободное ПО) набор серверов от компании Microsoft. Поставляется вместе с операционными системами семейства Windows NT [8].

IIS включен в семейство Windows NT начиная с ОС Windows NT 3.51 (1995) и по настоящее время. С версии 5.1 поставляющейся с ОС Windows XP Professional носит название Internet Information Services т.к. не является просто сервером, а представляет совокупность служб.

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

3.2.3 nginx 1.9


Nginx(англ. engine x – инструмент икс) – простой, быстрый, надежный и не перегруженный функциями web-сервер [9].

В 2002-м году разработку nginx начал Игорь Сысоев. В 2004 вышел первый релиз. С 2011 разработка ведется в рамках компании «Nginx». Nginx настроен, в первую, очередь на статические web-сайты.

По данным Netcraft он занимает 2 место по популярности в мире среди активных web-сайтов [7].

По данным W3Techs, nginx наиболее часто используется в высоконагруженных сайтах (около одной трети из топ 10000 самых популярных сайтов)

Так же в российском сегменте доменных имен *рф, *.ru, *su доля nginx составляет около половины.

В виду такой большой популярности в российском сегменте интернета, а так же его простота и функциональность подкрепили мой выбор nginx для данной работы.


4 Тесты



4.1 Оборудование и методы тестирования

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

Процессор Intel core-i5 4670k, 4 ядра с частотой 3,4 ГГц, оперативная память 8гб, ssd-диск 128gb, операционная система Windows 7 x64 Ultimate.

Каждый web-сервер устанавливался и тестировался на основной диск в порядке очереди. Естественно, во время тестов каждый web-сервер являлся единственно активным, антивирусное программное обеспечение и фаервол(firewall) были отключены.

В качестве программного обеспечения для выполнения тестов была выбрана утилита от Apache – Apache Benchmark.

Данная утилита входит в стандартный дистрибутив Apache. Кроме того, имеется почти во всех готовых сборках типа Denwer, XAMMP и т.д. AB предназначается для нагрузочного тестирования web-серверов. Суть его в том, что бы посылать на сервер определённое количество http-запросов, замеряя при этом время их обработки. С его помощью можно выявить те участи сайта, которые выполняются дольше других, и могут являться целью DoS-атаки или просто причиной большой нагрузки на сервер при нормальной активности пользователей [10].

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

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

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

В качестве страницы для тестов использовался html документ размером 181021 байт, представляющий из себя некоторое количество текста сопровождающегося таблицами, рисунками и т.п. Документ был помещен в корень диска.

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

4.2 Тесты


В таблице ниже представлены данные полученные в результате измерения. Слева – число запросов и уровень параллельности через дробь, сверху название web-сервера. Значения указаны в секундах.

Таблица - Полученные значения






Apache

nginx

IIS

1000/1

5,608

7,671

7,524

5000/1

27,757

38,555

38,636

1000/10

1,318

1,33

0,663

5000/100

4,319

4,451

3,788

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



Рисунок - Гистограмма теста 1

Первый тест (1000 запросов с уровнем параллельности 1) показывает поведение ресурсов с небольшим уровнем поточности (параллельного доступа), как видно, в данном тесте Apache является явным лидером (5,608 сек.). В то время как nginx и IIS имеют примерно равные значения(7,671 и 7,524 секунд соответственно).



Рисунок - Гистограмма теста 2

Второй, аналогичный первому, тест (5000 запросов с уровнем параллельности 1), но с большим числом запросов, для наблюдения закономерности. Показатели аналогичны первому тесту (Apache - 27,757; nginx - 38,555 и IIS - 38,636 (все значения в секундах)).



Рисунок - Гистограмма теста 3

Третий тест – доступ с небольшим (10) уровнем параллельности, количество запросов 1000.Показатели несколько изменились, и сразу заметно, что теперь лидером является IIS (0,663), опережая Apache (1,318) и nginx (1,33) почти вдвое. Стоит предположить, что с увеличением поточности значения IIS будут улучшаться, обусловлено это интегрированностью и хорошей оптимизацией.



Рисунок - Гистограмма теста 4

Четвертый тест – 5000 запросов, поточность 100. Как и предполагалось, IIS укрепил свои позиции, показав лучший результат(Apache - 4,319; nginx - 4,451 и IIS 3,788).

По результатам тестов, бесспорно, лучшим оказался Microsoft IIS, благодаря интегрированности и тому, что он разработан с учетом и архитектуры ОС Windows он показал отличные результаты. Благодаря стандартам безопасности, удобной настройке и отличной производительности, данный сервер лучше всего подойдет для интрасетей. Второе место достается Apache HTTP-сервер. Несмотря на не самые лучшие результаты, он обладает огромной функциональностью. Помимо того, основной платформой для Apache является Unix-подобные системы и там от него стоит ожидать другие результаты. Несмотря на не лучшие показатели, стоит помнить, что nginx является портированой версией. Это означает, что результаты, показанные под ОС Windows, будут иными на «родной» для nginx Unix-системе, ведь не зря крупные статические сайты выбирают именно его [5].


4.3 Расход памяти


Помимо всего было измерено значения расходуемой оперативной памяти.

приведены значения расходуемой оперативной памяти. Как видно, Nginx расходует меньше всего, почти в два раза меньше чем Apache и больше чем в три раза, нежели IIS. Однако важно подчеркнуть, что тестируемая web-страница была ничтожно мала, по сравнению с современными сайтами и данные значения показывают, сколько занимают сами службы серверов.



Таблица - Расходуемая оперативная память

Web-сервер

Расходуемая память, кб

Apache

9404

Nginx

5984

IIS

21492


ЗАКЛЮЧЕНИЕ


Основные результаты курсовой работы состоят в следующем:

  1. Была произведена работа по относительному сравнению популярных web-серверов, а именно: Apache HTTP-сервер, nginx и Microsoft IIS.

  2. Для тестирования был использован локальный компьютер с установленными на него, перечисленными выше, web-серверами. Для тестирования использовалась утилита Apache Benchmark.

  3. По итогам теста наилучшие результаты показал Microsoft II, а так же, он является отличным решением для интрасетей. Второе место занимает Apache и его богатый функционал и возможности не оставят равнодушным ценителей. К сожалению nginx в виду портированости не смог показать те возможности, которыми славится на Unix-системах. По результатам тестов он занимает третье место.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1 Вардо А. Значение интернета в жизни людей. Проза.ру. Апрель 29, 2010 // (Рус.).  - URL: http://www.proza.ru/2010/04/09/1451 [3 Мая 2015].

2 Подробности. Количество веб-сайтов в мире перевалило за миллиард. Podrobnosti.ua. Сентябрь 23, 2014 // (Рус.). - URL: http://podrobnosti.ua/994736-kolichestvo-veb-sajtov-v-mire-perevalilo-za-milliard.html [3 Мая 2015].

3 Звездин С.В. Мировые информационные ресурсы. / С.В.Звездин. - М.: ИНТУИТ, 2013. - 27 с.

4 Netcraft Ltd. Web Server Survey. Netcraft. July 2014 // (Engl.) - URL: http://news.netcraft.com/archives/2014/07/31/july-2014-web-server-survey.html [7 Апрель 2015].

5 Статистикадоменов.рф. Статистикадоменов.рф. 2014 // (Engl.). - URL:Статистикадоменов.рф [13 Апрель 2014].

6 Apache Software Foundation. Apache.ru - Russian Apache Web-server. 2008 // (Engl.). - URL: http://www.apache.ru/docs/ [17 Март 2015].

7 Netcraft Ltd. October 2014 Web Server Survey. Netcraft. 10 2014 // (Engl.). - URL: http://news.netcraft.com/archives/2014/10/10/october-2014-web-server-survey.html [17 Март 2015].

8 Microsoft. Home: The Official Microsoft IIS site. IIS. 2015 // (Engl.). - URL: https://www.iis.net/ [7 Апрель 2015].



9 Сысоев И. nginx - Официальная документация. nginx.org. 2008 // (Рус.). - URL: nginx.org [7 Апрель 2015].

10 Apache. Официальная документация. 2015 // (Engl.). URL: http://httpd.apache.org/docs/2.4/ [13 Апрель 2015].

  • ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ
  • 1 Основные функции web-серверов
  • 2 Критерии выбора web-серверов
  • 3 Обзор web-серверов 3.1 Статистические Данные
  • 3.2 Описание используемых web-серверов
  • 3.2.2 Internet Information Services (IIS) 7.5
  • 4 Тесты 4.1 Оборудование и методы тестирования
  • 4.2 Тесты

  • жүктеу 140.52 Kb.