Главная / Блог / Обзоры / Нагрузочное тестировние WooCommerce — сколько продуктов может обработать движок?

Нагрузочное тестировние WooCommerce — сколько продуктов может обработать движок?

05 марта 18
Reading Time: 2 minutes
Комментариев нет
1 Star2 Stars3 Stars4 Stars5 Stars (3 votes)

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

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

В первую очередь мы решили поискать такие кейсы на официальном сайте Woocommerce и среди владельцев магазинов, однако четкого ответа не нашли.

Официальная документация также не дает определенного ответа на этот вопрос, а только говорит, что это зависит от:

  • Сервера хостинга и компании
  • Количества заказов
  • Трафика

Подготовка к тестированию

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

  • Главная страница
  • Каталог товаров
  • Страница отдельного товара

Также на производительность очень влияет наличие атрибутов у товаров, наличие вариативных товаров, фото и дополнительных фото товаров.

Тестирование мы проводили на стандартном шаблоне WooCommerce Store Front, а также на базовой системе WordPress+WooCommerce без дополнительных плагинов, в том числе плагинов для кэша.

Тестовая база товаров

Чтобы сгенерировать необходимое количество товаров для теста мы разработали собственные инструменты и поместили их в плагин Premmerce Dev Tools.

С помощью данного плагина мы сгенерировали следующую базу данных:

  • Количество товаров — 50К
  • Количество категорий — 50
  • Количество товаров в категории — 1000
  • Количество атрибутов — 15
  • Количество значений в атрибуте — 7
  • Количество атрибутов в товаре — 15
  • Количество похожих товаров — 50К
  • Количество вариативных товаров — 1-3
  • Количество фото у каждого товара — 3

В результате база данных у нас выросла до следующих показателей:

  • Размер базы данных — 338 Мб
  • Количество запросов постов — 299999
  • Количество записей постмета — 1127568

Параметры тестового хостинга

Для тестирования нагрузки мы выбрали обычный хостинг со следующими параметрами:

  • Одно ядро от процессора Е3 — cpu: 3500.034 MHz
  • RAM: 512 Mb
  • Максимальное количество процессов: 20
  • Доступная память: 2048 Mb
  • Лимит работы с диском: 5 Mb/s

Сервис для тестирования

Для тестирования быстродействия и нагрузки мы использовали следующий сервис: Load Impact.

Тестирование главной страницы


Результат тестирования:

  • Количество всех запросов: 286
  • Минимальная продолжительность загрузки страницы — 413.9 ms
  • Средняя продолжительность загрузки страницы — 569 ms
  • Максимальная длительность загрузки страницы — 1.89 s
  • Минимальный ответ сервера — 163.87 ms
  • Средний ответ сервера — 298.85 ms
  • Максимальный ответ сервера — 1.64 s
  • Количество виртуальных пользователей — 50

Вывод

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

Тестирование небольшой категории товаров без фильтров

База магазина — 50К товаров, в категории, которую тестировали, находится 1К товаров.


Результат тестирования:

  • Количество всех запросов: 275
  • Минимальная продолжительность загрузки страницы — 500.37 ms
  • Средняя продолжительность загрузки страницы — ms 591.16
  • Максимальная длительность загрузки страницы — 2.14 s
  • Минимальный ответ сервера — 217.69 ms
  • Средний ответ сервера — 296.28 ms
  • Максимальный ответ сервера — 1.84 s
  • Количество виртуальных пользователей — 50

Вывод

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

Тестирование большой категории товаров без фильтров

База магазина — 50К товаров, в категории, которую тестировали, находится 50К товаров.

Результат тестирования:

  • Количество всех запросов: 272
  • Минимальная продолжительность загрузки страницы — ms 598.71
  • Средняя продолжительность загрузки страницы — ms 766.73
  • Максимальная длительность загрузки страницы — 2.93
  • Минимальный ответ сервера — 319.61 ms
  • Средний ответ сервера — 424.54 ms
  • Максимальный ответ сервера — 1.62 s
  • Количество виртуальных пользователей — 50

Вывод

Как видим, большая категория товаров с содержанием в 50К товаров влияет на загрузку страницы, увеличивая продолжительность открытия страницы почти в 1,5 раза. И это даже без применения дополнительных данных, таких как фильтры по категориям.

Данные условия практически нереальные на практике, поскольку такие категории значительно ухудшают навигацию по сайту и мешают дальнейшему продвижению магазина в целом. Рекомендуется разделять на категории, в которых содержится не более 2-3К товаров, в идеале делить на категории по 100-200 товаров при больших базах товаров. Поэтому мы больше не будем проводить тесты с такой большой категорией. Показали этот результат только для наглядности в целом.

Тестирование небольшой категории товаров с фильтрами WooCommerce

База магазина — 50К товаров, в категории, которую тестировали, находится 1К товаров.

Здесь мы применили стандартный виджет для создания фильтра по атрибутам от Woocommerce.

Результат тестирования:

  • Количество всех запросов: 276
  • Минимальная продолжительность загрузки страницы — ms 912.28
  • Средняя продолжительность загрузки страницы — 1.19 s
  • Максимальная длительность загрузки страницы — 3.6 s
  • Минимальный ответ сервера — 575.27 ms
  • Средний ответ сервера — 834.74 ms
  • Максимальный ответ сервера — 3.26 s
  • Количество виртуальных пользователей — 50

Вывод

Как мы видим, наличие фильтров увеличивает продолжительность загрузки страницы каталога примерно в два раза и уже нуждается в автоматизации, особенно за счет увеличения среднего ответа серверу до 800 мс, в сравнении с рекомендованными 200 мс от Google Page Speed Insights.

Тестирование небольшой категории товаров с фильтрами Premmerce

База магазина — 50К товаров, в категории, которую тестировали, находится 1К товаров.

Здесь мы применили разработанный нами плагин для создания фильтров по атрибутам (скоро будет доступен, пока проходит стадию тестирования).


Результат тестирования:

  • Количество всех запросов: 279
  • Минимальная продолжительность загрузки страницы — ms 617.07
  • Средняя продолжительность загрузки страницы — ms 703.85
  • Максимальная длительность загрузки страницы — 2.76 s
  • Минимальный ответ сервера — 280.47 ms
  • Средний ответ сервера — 352.96 ms
  • Максимальный ответ сервера — 2.41 s
  • Количество виртуальных пользователей — 50

Вывод

Как мы видим, использование фильтров Premmerce увеличивает скорость загрузки примерно в 2 раза по сравнению со стандартными фильтрами WooCommerce.

Тестирование страницы отдельного товара

Для теста мы взяли страницу товара, к которому назначены следующие параметры:

  • Количество фото — 3
  • Количество атрибутов — 15
  • Количество вариантов — 2

Результат тестирования:

  • Количество всех запросов: 288
  • Минимальная продолжительность загрузки страницы — 512.88 ms
  • Средняя продолжительность загрузки страницы — ms 625.97
  • Максимальная длительность загрузки страницы — 2.48 s
  • Минимальный ответ сервера — 223.77 ms
  • Средний ответ сервера — 298.91 ms
  • Максимальный ответ сервера — 1.66 s
  • Количество виртуальных пользователей — 50

Вывод

Как мы видим, большая база товаров не сильно влияет на открытие страницы товара. Хотя средний ответ сервера и меньше рекомендованного Google, в целом скорость загрузки очень хорошая.

Общий вывод по работе WooCommerce с большой базой товаров

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

В целом очевидно, что WooCommerce справляется с большими базами товаров и при правильных настройках может работать с базами в 50К, 100К и больше товаров.

В дальнейшем мы будем еще подробнее тестировать быстродействие магазина при наличии различных дополнительных установленных плагинов и если они будут значительно влиять на результат, будем предоставлять дополнительные статьи и результаты исследований.

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

Comments (0)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Создайте свой личный демо-магазин ImageCMS
Подпишитесь, чтобы получать новости

Be the first to know about Premmerce development and project news

Вы успешно подписались на наши новости. Спасибо большое!