Надёжность и Производительность



Как выбрать оптимальный тарифный план?

Нами было проведено тестирование Виртуальных Серверов с целью сравнения производительности серверов на разных тарифных планах. Данное исследование должно помочь нашим клиентам выбрать оптимальный тарифный план для своих сайтов и веб-приложений.

Для тестирования применялись утилиты sysbench и ab, производилось измерение производительности сервера баз данных MySQL и веб-сервера Apache. Для Apache исследовалось время обработки статического html и работы с php (php в режиме работы как модуль apache).

Максимальное количество запросов в секунду, которые смог обработать MySQL-сервер и веб-сервер Apache при обработке статического html-файла и php-скрипта на разных тарифных планах, приведены в таблице #1.

Таблица №1

То что тестировали VPS-MOSCOW-1 VPS-MOSCOW-2 VPS-MOSCOW-3 VPS-MOSCOW-4
MySQL 963 1139 1704 2128
simple.html 561 973 1336 1445
simple.php 137 173 250 314


Утилита sysbench производит запросы на чтение (select) и вставку (insert) строки данных в таблицу, содержимое simple.html и simple.php, которые вызывались при помощи ab, приведены ниже.

В таблице #2 приведена зависимость производительности сервера от частоты процессора, был проведен также тест web-сервера nginx. Сервер nginx - это высокопроизводительный web-сервер, предназначенный для раздачи статического контента, существует также возможность его совместной работы с сервером apache.

Таблица №2

Зависимость производительности от скорости процессора. Количество оперативной памяти 96 мегабайт.
То что тестировали 300Mhz 400Mhz 500Mhz 600Mhz 700Mhz
MySQL 754 983 1568 1880 2516
simple.html 403,06 663,57 899,28 1116,07 1388,89
simple.php 126,92 188,36 309,5 202 398,25
Nginx. Обработка simple.html 1182 1818 2036 2506 2777


Итак, вам необходимо определить, какой выбрать тарифный план для вашего сервера.

Предположим, у вас сайт использует php, скрипт осуществляет 20 запросов к базе данных, загружает 10 статических картинок, страница генерируется за 2 сек и одновременно на страницу могут зайти 10 пользователей

Для подсчета среднего времени создания ответа от сервера можно воспользоваться следующей формулой

  • Возьмем тарифный план VPS-MOSCOW-1 (согласно таблице №1)
  • Запрос MySQL выполняется за 1/963 = 0,00103 сек.
  • Запрос к веб-серверу выполняется за 1/561=0,00178 сек.
  • Обработка PHP-скрипта занимает 1/137=0,00729 сек.

Предположим, ваша страничка написана на php и подгружает 20 статических картинок, при этом производя 15 SQL-запросов.

Время выполнения можно подсчитать суммировав затраты времени сервисами MySQL и Apache

0,00729 + 20*0,00178 + 15*0,00103 = 0,05834 секунд

  • Аналогично для тарифного плана VPS-MOSCOW-4
  • Запрос MySQL выполняется за 1/2128 = 0.00046
  • Запрос к веб-серверу выполняется за 1/1445 = 0.00069
  • Обработка PHP-скрипта занимает 1/314 = 0.00318

0.00318 + 20*0.00069 + 15*0.00103 = 0.03243 секунд

Конечно, данные числа применимы только к идеальным условиям, например, должно пройти какое-то время, пока установится tcp-соединение с сервером, пока браузер сформирует запрос и обработает ответ. Однако можно, зная реальную скорость работы приложения на VPS-MOSCOW-1, вычислить его производительность (во сколько раз будет быстрее работать) на других тарифных планах при увеличении частоты процессора.

Таким образом, полученные данные можно рассматривать только как относительную величину, и основная цель проведенного исследования - определить, насколько зависит производительность веб-приложений в зависимости от того или иного тарифного плана. Используя их, вы можете, например, скорость обработки скриптов на VPS-MOSCOW-1, подсчитать время выполнения на VPS-MOSCOW-5 или другом тарифе.