Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Мдк 0201 ЛР8 почти готовая

.docx
Скачиваний:
1
Добавлен:
14.10.2023
Размер:
74.68 Кб
Скачать

Лабораторная работа №8. Нагрузочное тестирование web-сервера.

Основные теоретические сведения

Цель: с помощью систем нагрузочного тестирования определить производительность web-серверов Apache и Nginx, добиться отказа в обслуживании.

Ход работы

Рисунок 1 – История 1

Рисунок 2 – История 2

Рисунок 3 – Настройка nginx

Таблица 1 ­– Сравнение apache и nginx

 

 

Максимальное число запросов

Запросы/сек

Время, затрачиваемое на запрос, мс

% успешных запросов

Apache

PHP

 100000

 10000

 47.569

 100

 

HTML

 100000

 8295

59.508

 100

LB + Apache

PHP

 100000

620

 144.492

 100

 

HTML

 100000

 4765

 209.846

 100

Nginx

PHP

 100000

 13214

 37.838

 100

 

HTML

 100000

 14134

 35.373

 100

LB + Nginx

PHP

 100000

 14418

 69.355

 100

 

HTML

 100000

 13306

 75.152

 100

Вопросы к лабораторной работе

1. Назначение нагрузочного тестирования?

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

2. Что такое нагрузка?

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

3. Как указать ab сделать нагрузку в 10000 запросов, 500 из которых будут направлены одновременно? Перестанет ли ваш сервер принимать входящие подключения?

ab -n 10000 -c 500 http://*ip адрес*.index.*индекс (html, php)*, машина продолжит принимать запросы, даже если установить еще больше запросов, но может перестать принимать их при увеличении одновременного принятия запросов (больше чем 10000)

4. Можно ли протестировать при помощи ab, httperf и Siege другие web-сервера? Назовите примеры.

5. Влияет ли использование скриптовых языков программирования (например, PHP) на производительность web-сервера? Объясните почему.

Да, влияет. Каждому запущенному с php процессу выделяются ресурсы процессора и ОЗУ, как и любой другой программе. Чем больше одновременно запущено таких процессов, тем больше нагрузка на сервер.

6. Для чего нужен балансировщик нагрузки?

Балансировщик нагрузки приложений направляет трафик для запросов на основе HTTP. Балансировщик сетевой нагрузки маршрутизирует трафик на основе IP-адресов. Они идеально подходят для балансировки запросов на основе протокола TCP и User Datagram Protocol (UDP).

7. Какие существуют методы балансировки нагрузки в nginx?

Способы балансировки, которые можно использовать в NGINX:

  • Round Robin.

  • Hash.

  • IP Hash.

  • Least Connections.

  • Random.

  • Least Time (только в платной версии NGINX).