Вебформат

Главная/Блог/ИТ-специалистам

ИТ-специалистам12 апреля 20268 мин

Нагрузочное тестирование магазина автозапчастей: кейс с цифрами

Перед сезоном клиент попросил оценить запас прочности магазина автозапчастей: выдержит ли он приток посетителей и рекламную кампанию. Каталоги автозапчастей особенно тяжёлые - сотни тысяч товаров, миллионы аналогов, постоянная синхронизация с 1С. Показываем результаты теста в цифрах и какие выводы из них сделали.

Поделиться
Нагрузочный тест магазина автозапчастей · запас прочности к сезону

Перед началом сезона к нам обратился магазин автозапчастей: нужно было оценить запас прочности сайта - выдержит ли он приток посетителей и рекламную кампанию. Каталоги автозапчастей тяжелее обычных магазинов: десятки и сотни тысяч товаров, миллионы аналогов, постоянные выгрузки и синхронизация с 1С. Нагрузка здесь высокая сама по себе, и страницы открываются дольше.

Тест задумывался как пилотный, поэтому сценарии были простыми. Перед прогоном на сайте отключили весь кэш - и Битрикса, и MySQL, - чтобы увидеть честную производительность под нагрузкой в 100 потоков.

Что показали замеры

  • Главная - генерируется за 0,5 с, но грузится клиенту за 2,8 с и даёт пиковую нагрузку на сеть 650 Мбит/с.
  • Карточка товара - на границе приемлемого: загрузка около 2,3 с.
  • Список товаров - медленно: генерация до 3,6 с, загрузка до 4,8 с.
  • Поиск по цифровому артикулу - быстрый по генерации, но время загрузки впятеро больше времени генерации.
  • Полнотекстовый поиск - недопустимо медленно: до 11,6 с даже при 50 потоках.

Как читать такие цифры

Важно сравнивать время генерации (сколько сервер собирает страницу) и время загрузки (сколько ждёт клиент). Когда генерация мала, а загрузка велика - проблема в статике: на главной странице слишком много картинок, стилей и скриптов, отсюда и 650 Мбит/с на сеть. Обратная картина у полнотекстового поиска: он долго генерируется, но сеть почти не грузит - значит, дело в логике поиска, а не в канале.

Выводы по проекту

  • список товаров и поиск по буквенно-цифровому артикулу - оптимизировать;
  • логику полнотекстового поиска - серьёзно переработать;
  • статику сжать, особенно на главной, и подключить CDN;
  • сетевой канал поднять до 1 Гбит на постоянной основе.

На 1-гигабитном канале сервер хоть и тормозил местами, но отказа сервиса не было - продолжил работать. На 100 Мбит он бы не справился.


После теста клиент получил картину производительности и план доработок, внедрил их - и магазин выдержал сезон. Как устроено нагрузочное тестирование в принципе - сценарии, выбор сервиса, типичные ошибки - разбираем в статье нагрузочное тестирование: почему сайт тормозит и сколько он выдержит. Часть нагрузки на больших каталогах снимает HTTP-кэширование. Хотите узнать запас прочности до сезона - проведём тест, разберём задачу на диагностике.

Сомневаетесь, выдержит ли магазин сезон?

Обсудим ваш проект - оценим запас прочности вашего интернет-магазина, найдём узкие места в производительности и предложим план под пик нагрузки.