Настройка VDS для Keitaro TDS 5

Нам часто задают вопрос как настраивать сервер для Keitaro TDS и как определить выдержит ли X трафика такой-то сервер, поэтому мы подготовили несколько рекомендаций и провели нагрузочное тестирование на примере простого VDS. Стоит отменить, что рекомендации расчитаны на одну конфигурацию виртуального сервера, и вероятно, не являются наилучшими.

Конфигурация сервера

Для примера возьмем  виртуальный сервер от FriendHosting. Тариф FriendVPS Mini с услугой FastTDS.

server

На сервере уже предустановлен MySQL, Nginx, PHP-FPM, PHP 5.4.26 с Ioncube и APC, поэтому установки этих компонентов касаться не будем.

 

Установка Redis

 

Настройка PHP-FPM

Текущая конфигурация PHP-FPM неоптимально использует ресурсы. Создаются лишние дочерние процессы, под которые выделяется память. Сократим немного.

Новые значения:

 

Перезапуск PHP-FPM:

 

 

Настройка MySQL

Уменьшим лимит подключений к MySQL и ускорим вставки в InnoDB.

Добавим в секцию [mysqld]:

Перезапуск MySQL:

 

Установка Monit

За стабильной работой mysql и redis будет следить Monit. Если один из процессов упадет, он сам его перезапустит.

 

По-умолчанию стоит проверка в 1 минуту, что много, особенно если упадет MySQL. Лучше сократить, до 20-30 секунд.

 

 

Настройки для MySQL:

 

 

Настройки для Redis:

 

Запуск Monit:

 

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

Для тестирования создана группа:

streams

Настройки TDS и jmeter:

  • Одна группа;
  • Кэширование в APC;
  • Используется Redis;
  • Статистика включена;
  • Интервал запуска cron.php — 1 минута;
  • Проверка ботов по IP и UserAgent;
  • Сервер расположен в Украине.
  • Запросы через API (api.php);
  • 65025  вариаций IP адресов (68.128.*.*);
  • Один UserAgent;
  • Тестирование велось из России, сервер в Украине.

 

Среднее время ответа во время 7.5 часового тестирования в 10 параллельных потоков:

response2

 

Потребление CPU (значение умножается на 2):

cpu

 

Потребление памяти:

memory2

 

Отношение количества одновременных запросов и времени ответа:

2_threads

 

По графику видно, что до 10 (600 rpm) одновременных подключений ответ приходит менее секунды, что является вполне примемлемым и малозаметным. При идеально равномерной нагрузке, порог трафика будет 864 000/сутки. Если взять в расчет, что c 9:00 до 21:00 проходит 90% трафика, показатель составит 432 000/сутки.

 

Если вы нашли ошибку или у вас есть вопросы, пожалуйста, напишите нам на support@keitarotds.com.