Все про Сервер або масштабне тестування VPS

Сам я вже давно не користуюсь послугами вітчизняних хостинг-провайдерів і для власних потреб орендую сервер у Німеччині. І одного чудового ранку я вирішив перевірити наскільки якісні ті послуги, які нам пропонують українські хостинг-провайдери і для цього було вирішено відібрати кілька вітчизняних VPS, встановити на них необхідне ПЗ, тестовий сайт та провести масштабне тестування навантаження.

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

масштабне

Методологія тестування:

Метод тестування простий - з віддаленого сервера відправляємо тонни запитів на 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: час виконання запиту. с. Рядок 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 не зміг впоратися із завданням і зміг обробити лише трохи більше половини запитів. 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 сек.
    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, але потенціал був добре простежений в даному тесті. Як з'ясувалося далеко не завжди продуктивність упирається в мегагерці та обсяги ОЗУ.

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

    А у нас тут можна отримати грант на тестовий період Яндекс.Хмари. Варто лише у полі «секретний пароль» запровадити «Хабр»