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

Методологія тестування:
Метод тестування простий - з віддаленого сервера відправляємо тонни запитів на WEB сервер і дивимося, як поводиться VPS. Можна сказати, що це невеликий DDos. Як атакуючий я використовував свій орендований сервер у Німеччині в наступній конфігурації:
- Intel i7 2600 Quad-Core + Hyper-Threading;
- 32 Гб ОЗУ;
- 1 Гбіт канал.
- Apache 2.2.22;
- PHP 5.4;
- MySQL 5.5.
- Apache 2.2.16;
- PHP 5.3;
- MySQL 5.1.
Для кожного VPS тестування проводилось у 3 етапи:
- Перший етап – 30 потоків та 500 запитів.
- Другий етап – 50 потоків та 1 000 запитів.
- Третій етап – 100 потоків та 10 000 запитів.
Кожен етап проганявся 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. Перше значення вказано мінімальне, друге – максимальне. Параметр показує, за який час виконався найповільніший і найшвидший запит. Чим менші ці показники, тим швидше сервер обробляє запити.
У тесті не дається оцінка таких характеристик, як дискова підсистема, обсяг зовнішнього каналу, вартість та якість додаткових послуг.
Тестування:
Перший раунд: 30 потік та 500 запитів.І в першому ж тесті VPS від 1gb.ru не зміг обробити навіть 100 запитів. З чим це пов'язано сказати складно, я не мав мети розбиратися про причини такого фатального виступу даного претендента, тому йдемо далі.
Наступний претендент від Timeweb показав себе набагато краще і без особливих зусиль впорався із завданням, опрацювавши всі надіслані на його WEB сервер запити:
| 0 | 6.2 | 161.3 мс. | 4758 мс. | 1616 - 8988 мс. | 79.6 сек. |
| 0 | 10.1 | 99.1 мс. | 2981 мс. | 827 - 5373 мс. | 49.5 сек. |
| 0 | 3.4 | 291.7 мс. | 8750 мс. | 1524 - 10142 мс. | 145.8 сек. |
| 0 | 2.3 | 436.4 мс. | 13091 мс. | 2662 - 15462 мс. | 218 сек. |
| 0 | 5.3 | 189.5 мс. | 5685 мс. | 1304 - 7210 мс. | 94.7сек. |
| 0 | 10.4 | 96.5 мс. | 2895 мс. | 919 - 4941 мс. | 48.3 сек. |
Другий раунд: 50 потоків та 1000 запитів.
Timeweb:
| 449 | 4.6 | 218.4 мс. | 10919.5 мс. | 538 - 38114 мс. | 218.4 сек. |
| 0 | 7.6 | 131.5 мс. | 6574.7 мс. | 635 - 9781 мс. | 131.5 сек. |
| 0 | 3.4 | 291.3 мс. | 14563.8 мс. | 2018 - 16325 мс. | 291.3 сек. |
| 0 | 2.3 | 436.6 мс. | 21827.7 мс. | 2548 - 24240 мс. | 436.6 сек. |
| 0 | 5.5 | 182.7 мс. | 9133.7 мс. | 1620 - 11103 мс. | 182.7 сек. |
| 0 | 9.6 | 104 мс. | 5202.3 мс. | 987 - 10296 мс. | 104 сек. |
Третій раунд: 100 потоків і 10000 запитів.Timeweb: У третьому раунді у Timeweb привсіх 3 спробах намертво падав MySQL і Apache видавав невеселе повідомлення: Error displaying the error page: Application Instantiation Error. Тестований сайт оживав лише після рестрату MySQL. На третьому етапі VPS від Timeweb поповнює ряди відстаючих, разом із 1gb. Agava:
| 0 | 7.6 | 125.8 мс. | 12576 мс. | 606 - 15627 мс. | 1257.6 сек. |
| 0 | 3.4 | 292.2 мс. | 29216.5 мс. | 1576 - 35362 мс. | 2921.6 сек. |
| 0 | 2.3 | 4396.1 мс. | 43961.3 мс. | 2683 - 81978 мс. | 4396.1 сек. |
| 0 | 5.2 | 1910.3 мс. | 19103.4 мс. | 1488 - 23609 мс. | 1910 сек. |
У цьому третій етап тестування завершено.
Переможцем нашого тестування, який продемонстрував дуже непогану швидкість роботи та відмовостійкість, оголошено VPSвід Agava. Аутсайдером нашого тесту, звичайно ж, став VPS від 1gb, який зміг впоратися лише з 10 потоками та 50 запитами. Підсумкова таблиця виглядає так:
- Agava
- Незважаючи на невдачу в останньому тесті, друге місце я віддаю VDS24
- Fozzy
- Infobox
- It-mcp
- Timeweb
- 1gb
Звичайно ми змогли протестувати далеко не всі VPS, які є на ринку, також швидкість роботи і стійкість до відмови можна значно підвищити грамотним налаштуванням VPS, але потенціал був добре простежений в даному тесті. Як з'ясувалося далеко не завжди продуктивність упирається в мегагерці та обсяги ОЗУ.
Ознайомитись зі зведеною таблицею результатів тестування можна тут.
А у нас тут можна отримати грант на тестовий період Яндекс.Хмари. Варто лише у полі «секретний пароль» запровадити «Хабр»