...

суббота, 22 февраля 2014 г.

[Из песочницы] Vсем Pо Sерверу или масштабное тестирование VPS

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

Для тестирования были рандомным способом отобраны 7 отечественных хостинг-провайдеров, предоставляющие услуги тестового периода для VPS (VDS), чем я не мог не воспользоваться в своих благих целях. Стоимость VPS варьируется от 500 до 700 рублей и относятся к бюджетному сегменту. Итак, наши претенденты:


image



Методология тестирования:




Метод тестирования прост — с удаленного сервера отправляем тонны запросов на WEB сервер и смотрим, как ведет себя VPS. Можно сказать, что это небольшой DDos.

В качестве атакующего я использовал свой арендованный сервер в Германии в следующей конфигурации:

  • Intel i7 2600 Quad-Core + Hyper-Threading;

  • 32 Гб ОЗУ;

  • 1 Гбит канал.




На всех тестируемых VPS установлена ОС – Debian 7 x64. В тех случаях, где хостер не поддерживает данную ОС используется другая ОС, о чем указано выше в описании претендентов.

Основное установленное ПО на VPS (Debian 7):

  • Apache 2.2.22;

  • PHP 5.4;

  • MySQL 5.5.




Основное установленное ПО на VPS (Debian6):

  • Apache 2.2.16;

  • PHP 5.3;

  • MySQL 5.1.




Чтобы получить максимально точные результаты всем VPS были созданы идентичные условия: все ПО я устанавливал самостоятельно. WEB сервера работают на голом Апаче (NGINX и прочие приятности не устанавливались), все конфиги по дефолту. На все VPS была установлена Joomla 3.1.5 с демо данными блога. В качестве ПО для самого теста использовался Apache Benchmark версии 2.3.

Для каждого VPS тестирование проводилось в 3 этапа:



  1. Первый этап – 30 потоков и 500 запросов.

  2. Второй этап – 50 потоков и 1 000 запросов.

  3. Третий этап – 100 потоков и 10 000 запросов.




Количество потоков можно приравнять к посетителям сайта, а количество запросов к запросам от этих посетителей к WEB серверу VPS.

Например, первый этап можно представить, как 30 пользователей на сайте одновременно и в общей сложности сделали 500 запросов WEB серверу.

Каждый этап прогонялся 3 раза и в качестве результирующих использовались средние значения из результатов теста.

В таблице учитывались основные, на мой взгляд, параметры:



  • Неудачные запросы (Failed requests) – количество запросов, которые VPS не смог обработать.

  • Количество запросов в секунду (Requests per second) – тут все ясно из названия, чем больше запросов в секунду обрабатывает WEB сервер, тем выше его скорость работы.

  • Время выполнения 1 запроса (...across all concurrent requests) – чем меньше данное значение, тем быстрее WEB сервер обрабатывает запросы и тем выше общая скорость работы.

  • Время выполнения всех запросов (Time per request) – общее время на обработку всех отправленных на WEB сервер запросов. Чем меньше значение, тем лучше.

  • Время соединения (Connection Times) – состоит из

    a. Строка Connect: — время, которое потратила утилита на соединение с сервером.

    b. Строка Processing: — время выполнения запроса.

    c. Строка Waiting: — время простоя запроса. То есть время, которое запрос ждал своей очереди для выполнения.

    d. Строка Total — Общее время.


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



  • Общее время на тест (Time taken for tests) – зачастую совпадает с общим временем обработки всех запросов. Чем меньше значение, тем лучше.


В тесте не дается оценка таким характеристикам, как дисковая подсистема, объем внешнего канала, стоимость и качество доп.услуг.


Тестирование:




Первый раунд: 30 поток и 500 запросов.

И в первом же тесте VPS от 1gb.ru не смог обработать даже 100 запросов. С чем это связано сказать сложно, у меня не было цели разбираться о причинах столь фатального выступления данного претендента, поэтому идем дальше.

Следующий претендент от Timeweb показал себя намного лучше и без особых усилий справился с задачей, обработав все отправленные на его WEB сервер запросы:



















Неудачные запросыКол-во запросов в сек.Время выполнения 1 запросаВремя выполнения всех запросовВремя соединенияОбщее время
06.2161.3 мс.4758 мс.1616 — 8988 мс.79.6 сек.



Далее «атаке» подвергся VPS от Agava, который также успешно справился со своей задачей:


















Неудачные запросыКол-во запросов в сек.Время выполнения 1 запросаВремя выполнения всех запросовВремя соединенияОбщее время
010.199.1 мс.2981 мс.827 — 5373 мс.49.5 сек.



Следующий претендент – infobox:


















Неудачные запросыКол-во запросов в сек.Время выполнения 1 запросаВремя выполнения всех запросовВремя соединенияОбщее время
03.4291.7 мс.8750 мс.1524 — 10142 мс.145.8 сек.



Следом в деле себя показал хостинг от It-mcp:


















Неудачные запросыКол-во запросов в сек.Время выполнения 1 запросаВремя выполнения всех запросовВремя соединенияОбщее время
02.3436.4 мс.13091 мс.2662 — 15462 мс.218 сек.



Предпоследний кандидат – Fozzy:


















Неудачные запросыКол-во запросов в сек.Время выполнения 1 запросаВремя выполнения всех запросовВремя соединенияОбщее время
05.3189.5 мс.5685 мс.1304 — 7210 мс.94.7сек.



И завершает первый этап тестирования VDS24.net:


















Неудачные запросыКол-во запросов в сек.Время выполнения 1 запросаВремя выполнения всех запросовВремя соединенияОбщее время
010.496.5 мс.2895 мс.919 — 4941 мс.48.3 сек.



Подведем первый промежуточный итог:

Все VPS, кроме 1gb, справились с заданием, поэтому 1gb выбывает из дальнейших тестов. Лидером по скорости, после первого этапа, является VDS24, на втором месте VPS от Agava. Переходим к раунду 2.

Второй раунд: 50 потоков и 1000 запросов.


Timeweb:



















Неудачные запросыКол-во запросов в сек.Время выполнения 1 запросаВремя выполнения всех запросовВремя соединенияОбщее время
4494.6218.4 мс.10919.5 мс.538 — 38114 мс.218.4 сек.



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

image

Agava:


















Неудачные запросыКол-во запросов в сек.Время выполнения 1 запросаВремя выполнения всех запросовВремя соединенияОбщее время
07.6131.5 мс.6574.7 мс.635 — 9781 мс.131.5 сек.



Infobox:


















Неудачные запросыКол-во запросов в сек.Время выполнения 1 запросаВремя выполнения всех запросовВремя соединенияОбщее время
03.4291.3 мс.14563.8 мс.2018 — 16325 мс.291.3 сек.



It-mcp:


















Неудачные запросыКол-во запросов в сек.Время выполнения 1 запросаВремя выполнения всех запросовВремя соединенияОбщее время
02.3436.6 мс.21827.7 мс.2548 — 24240 мс.436.6 сек.



Fozzy:


















Неудачные запросыКол-во запросов в сек.Время выполнения 1 запросаВремя выполнения всех запросовВремя соединенияОбщее время
05.5182.7 мс.9133.7 мс.1620 — 11103 мс.182.7 сек.



VDS24:


















Неудачные запросыКол-во запросов в сек.Время выполнения 1 запросаВремя выполнения всех запросовВремя соединенияОбщее время
09.6104 мс.5202.3 мс.987 — 10296 мс.104 сек.



По результатам второго этапа тестирования по-прежнему с небольшим отрывом лидирует VDS24, ему в спину дышит Agava. В хвосте списка плетется It-mcp.

Третий раунд: 100 потоков и 10000 запросов.

Timeweb:

В третьем раунде у Timeweb при всех 3 попытках намертво падал MySQL и Apache выдавал невеселое сообщение: Error displaying the error page: Application Instantiation Error. Тестируемый сайт оживал только после рестрата MySQL. На третьем этапе VPS от Timeweb пополняет ряды отстающих, вкупе с 1gb.

Agava:



















Неудачные запросыКол-во запросов в сек.Время выполнения 1 запросаВремя выполнения всех запросовВремя соединенияОбщее время
07.6125.8 мс.12576 мс.606 — 15627 мс.1257.6 сек.



Infobox:


















Неудачные запросыКол-во запросов в сек.Время выполнения 1 запросаВремя выполнения всех запросовВремя соединенияОбщее время
03.4292.2 мс.29216.5 мс.1576 — 35362 мс.2921.6 сек.



It-mcp:


















Неудачные запросыКол-во запросов в сек.Время выполнения 1 запросаВремя выполнения всех запросовВремя соединенияОбщее время
02.34396.1 мс.43961.3 мс.2683 — 81978 мс.4396.1 сек.



Fozzy:


















Неудачные запросыКол-во запросов в сек.Время выполнения 1 запросаВремя выполнения всех запросовВремя соединенияОбщее время
05.21910.3 мс.19103.4 мс.1488 — 23609 мс.1910.3 сек.



VDS24:

Мы подошли к нашему лидеру первых двух этапов. И тут нас постигает разочарование. VDS24 при всех трех попытках намертво зависал, сумев обработать лишь чуть более 2000 запросов.

На этом третий этап тестирования завершен.


Итоги:




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

Аутсайдером нашего теста, конечно же, стал VPS от 1gb, который смог справиться лишь с 10 потоками и 50 запросами.

Итоговая таблица выглядит так:

  1. Agava

  2. Несмотря на провал в последнем тесте, второе место я отдаю VDS24

  3. Fozzy

  4. Infobox

  5. It-mcp

  6. Timeweb

  7. 1gb




Для эксперимента была сделана попытка проверить возможности еще не выпавших из гонки VPS. Им в нагрузку было отправлено 300 потоков и 50 000 запросов. Скажу сразу, что никто с такой нагрузкой так и не справился.

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


Ознакомиться со сводной таблицей результатов тестирования можно здесь.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Комментариев нет:

Отправить комментарий