1 заметка с тегом

monkey http

Сравнение веб серверов для Raspberry Pi

25 августа 2014, 23:30

Перед установкой сервера наверно каждый задумывается над тем, какой установить, особенно если железо слабое. Сегодня мы сравним производительность на Raspberry Pi.

Тест

Тестовый стенд состоял из ноутбука, Raspberry Pi и маршрутизатора между ними. Интернет был отключен и постороннего трафика в сети не наблюдалось.

На ноутбуке была установлена утилита Siege, так как это отличный инструмент для тестирования.
Тестировал я статический контент, текст и картинки, тест php возможно сделаю в будущем.

Тестовый контент

Эксперимент будем проводить на следующем контенте:

  • загрузка html маленького размера 177 байт,
  • загрузка html большого размера 95,881 байт,
  • загрузка PNG 849 байт,
  • загрузка JPG 179,000 байт.

Я запускал эти тесты с 200 одновременными подключениями в течении 2х минут следующей командой:

siege -b -t2m -c200 192.168.1.100 [filename]

Тестировал следующие сервера:

  • Apache,
  • Nginx,
  • Monkey HTTP,
  • Lighttpd.

Все настройки были из коробки.
Посмотрим какой сервер самый быстрый?

Загрузка html страниц маленького размера

Первый тест показывает, как много запросов выполнено за 2 минуты. Это является хорошим показателем скорости, потому что, если сервер не справляется, он не будет обрабатывать запросы. Я выполнил 2 раза, при 100 одновременных подключений, и при 200.

Apache 26724 26624
Lighttpd 32963 31807
Monkey 39423 39310
Nginx 40391 39449

Nginx и Monkey намного опережают Apache в этом тесте
Победитель: Nginx

Загрузка html страниц большого размера

В этом тесте у нас довольно большой HTML-файл, содержащий текст. Вот результаты:

Apache 698 152
Lighttpd 625 563
Monkey 2060 2007
Nginx 3912 3886

Было ясно что цифры будут меньше, но все равно Nginx впереди всех, на втором месте его догоняет Monkey, а вот Apache с его 152 запросами явно нелегко, хотя если поиграть с настройками, статистика возможно изменится, но у нас все в равных условиях.
Победитель: Nginx

Загрузка PNG картинок

В этом тесте мы увидим как сервер будет обрабатывать совсем маленькие файлы по 849 байт:

Apache 32275 32840
Lighttpd 40838 41497
Monkey 51130 51065
Nginx 44461 45010

Monkey абсолютный победитель, как при 100 одновременных запросов, так и при 200.
Победитель: Monkey

Загрузка JPG картинок

Попробуем нагрузим наш сервер большой картинкой (178 Кб):

Apache 1467 1390
Lighttpd 1503 1357
Monkey 1442 1338
Nginx 1451 1396

По графику видно, что Apache вырывается из оутсайдеров, но при 100 одновременных запросов побеждает Lighttpd, а при 200 Nginx.
Победитель: Lighttpd при 100 запросах, Nginx при 200.

Доступность при нагрузке

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

При 100 одновременных подключений, все они показывают себя довольно хорошо:

Маленький текст Большой текст Маленькая PNG Большая JPG
Apache 100 100 100 98.39
Lighttpd 100 100 100 99.93
Monkey 100 99.95 100 99.65
Nginx 100 100 100 97.55

Значения в процентах, все почти справляются, только Nginx показывает падение при загрузке больших файлов.

Маленький текст Большой текст Маленькая PNG Большая JPG
Apache 99.98 21.53 100 98.39
Lighttpd 99.95 100 99.93 99.41
Monkey 99.88 98.87 99.97 98.60
Nginx 99.89 98.38 99.92 97.55

Apache проваливает этот тест, а остальные 3 сервера показывают почти одинаковые показатели, но Lighttpd, немного опережает.
Победитель: Lighttpd

Передача данных

Этот тест показывает объем переданных данных в Мб. Ниже представлены 3 графика:

Победитель: Monkey для текста, Apache для картинок

Время ответа

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

При загрузке текста мы видим, что победитель Nginx, при загрузке картинок все показывают одинаковые результаты.
Победитель: Nginx

Многопоточность

Этот тест показывает, сколько одновременных пользователей смогли бы получить данные:

Можно заметить, что при загрузке текстовых страниц мы снова видим победителя Nginx, а вот с изображениями первенство выхватывает Apache.
Победитель: Apache

Пропущенные запросы

Очень важных показатель, отображающий общее количество отклоненных запросов:

Победитель: Lighttpd

Итог

Победитель: Nginx
В целом, самый быстрый и надежный сервер — это Nginx. Я это говорю т. к. он наиболее зрелый по сравнению с Monkey, которая идет по пятам. Но если дела обстоят с большими объемами изображений, то у Apache нет конкурентов, я думаю, если его настроить, то показателям он приблизится к Nginx, но не каждый будет так глубоко углубляться и проводить после этого тесты. Поэтому в следующей статье мы будем устанавливать Nginx сервер на Raspberry Pi. Удачи!

apache   lighttpd   monkey http   nginx   raspberry pi