Нагрузочное тестирование
Инфраструктура

Интернет-магазин Эконика

Эконика – это одна из крупнейших обувных сетей в России, занимается не только ритейлом, но и продажей фирменной обуви собственного бренда.

Какие задачи были?
1
Обеспечение бесперебойной работы сайта во время распродажи.
2
Перенос базы данных и сайта на новый сервер.
3
Снижение расходов за счет переезда с двух серверов на один.
4
Выявление различий между характеристиками старых и нового серверов, включая процессоры с меньшей частотой на новом сервере.
5
Оценить производительность Битрикса на новом сервере с меньшей частотой процессоров, но большим количеством ядер.
Рейтинг и отзывы Эконика
Решение

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

Баннер Эконика
Процесс работ

В этом кейсе мы провели 4 итерации нагрузочного тестирования и поработали с инфраструктурой клиента, чтобы увеличить пропускную способность и стабильность сайта.

Для первой итерации нагрузочного тестирования за основу взяли лог запросов к серверу, а именно к динамическим PHP-страницам. При этом уже при небольших показателях RPS (запросов в секунду) скорость работы сайта значительно снижалась.

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

  1. Одним из самых главных факторов, сдерживающих скорость работы сайта, являлось использование внешнего сервиса geoip, который медленно отвечал на запросы.

  2. Большое количество времени занимало обращение к директории с сессиями.

Проблему с сервисом geoip передали разработчикам, сами же перешли к инфраструктурным работам.

План по инфраструктурным работам

План по инфраструктурным работам

  1. Настроить новый сервер как ноду для масштабирования на время акции.
  2. Подготовить конфигурационные файлы для балансировки запросов к сайту между двумя нодами.
  3. На новом сервере протестировать другие, более быстрые способы хранения сессий.
Эконика логотип

Итоги первой итерации

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

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

Далее настроили хранение сессий в memcached, настроили новый сервер для принятия трафика, отбалансировали SQL-запросы, добавили возможность чтения со slave.

Итоги первой итерации
Проведенные работы

В процессе инфраструктурных работ мы провели ещё несколько итераций нагрузочного тестирования.

  1. Первую параллельно с настройкой БД и нового сервера.
  2. Вторую после создания тестового виртуального хоста, на котором уже была включена балансировка WEB и SQL запросов.
  3. Закончив работы, провели ряд тестов, поправили настройки opcache и начали получать очень приличные показатели запросов в секунду, которые выдерживала новая система.

После тестирования работы сайта на тестовом vhost, было исправлено:

  • оформление заказа в 1 клик;
  • получение СМС;
  • отображение остатков.

После чего балансировка была включена на основной сайт и проведено финальное тестирование. Оно выявило ошибки CDN, которые мы тоже исправили.

Схема работы проекта после
Схема работы проекта после
Команда проекта
Сервис менеджер
Сервис менеджер
Инцидент менеджер
Инцидент менеджер
Системный администратор
Системный администратор
Результат

Пропускная способность сайта увеличилась более чем в 18 раз с возможностью горизонтально масштабировать вычислительные ресурсы и выдерживать ещё больше трафика.

Новый сервер настроили для обработки скриптов при балансировке запросов.

Остались вопросы или хотите что-то уточнить?

Ответим на заявку в ближайшие 24 часа. А еще мы можем проконсультировать вас по телефону +7 800 555-91-99, электронной почте info@itsumma.ru или в Telegram-чате.

Свяжитесь со мной здесь
Свяжитесь со мной здесь
❗️Имя не может быть пустым
❗️Телефон не может быть пустым
❗️Email не может быть пустым