Логотип imagecms

Нагрузочное тестирование ImageCMS Shop

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

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

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

Итак, давайте выясним как определить, какую нагрузку может выдержать ваш интернет-магазин. А также расскажем, как мы проводили тестирование для ImageCMS Shop.

Для тестирования мы использовали Apache JMeter - инструмент для проведения нагрузочного тестирования, разрабатываемый Apache Software Foundation. Данное решение позволяет смоделировать реальное поведение пользователей и задать необходимые параметры, чтобы получить наиболее точный результат.

Мы задали максимально приближенный к реальному сценарий. Каждый пользователь, который переходит на сайт, во время моделирования будет выполнять следующие условия:

  • переход на страницу каталога
  • переход на вторую страницу
  • переход на карточку товара

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

  • 50 пользователей в минуту (это нагрузка, которая соответствует посещаемости примерно 20000 пользователей в день)
  • 100 пользователей в минуту (это нагрузка, которая соответствует посещаемости примерно 40000 пользователей в день)
  • 300 пользователей в минуту (это нагрузка, которая соответствует посещаемости примерно 120000 пользователей в день)

Также мы тестировали нагрузку на магазин с различным количеством товаров, для теста было выбрано три базы: на 1000, 10000, 100000 товаров. Базы были наполнены рандомно сгенерированными товарами.

Для каждого хостингового плана мы проводили тест на двух версиях PHP - 5.6, 7. Дело в том, что не все хостинги поддерживают PHP 7 и необходимый для нашей платформы модуль ionCube.

Хостинговые планы брали на основании ImageCMS Host. Основные различия в тарифных планах определены ресурсом, cpu, ограничением на время выполнения php-скриптов, а так же лимитом оперативной памяти на процесс. А именно:

  • Тариф Mini предусматривает возможность использовать 1 ядро процессора, 512mb оперативной памяти на процесс, время работы на php-скрипт (процессорное время) до 500 сек.
  • Тариф Start - до 2-х ядер процессора, 1Gb (1024mb) на php-скрипт и до 1000 сек на работу скрипта.
  • Тариф Standart - до 3-х ядер процессора, 1.5Gb (1536mb) на php скрипт, до 1500 сек на работу скрипта.

Итак, начнем.

Пример теста

Проводим тест на тарифе Mini для базы в 1000 товаров и нагрузке в 50 пользователей в минуту с установленным PHP 7.

доступность: 100%
средняя скорость: 786 мс.

Пример теста  

Немного объясним, как интерпретировать данные, полученные в результате тестирования:

  • Label - Ярлык образца. Если выбрано "Включить название группы в ярлык?", то название группы треда добавляется в качестве префикса. Таким образом при необходимости можно располагать одинаковые ярлыки из разных групп тредов по отдельности.
  • # Samples - Количество образцов с одинаковым ярлыком.
  • Average - Среднее время, затраченное на определённое количество результатов.
  • Min - Минимальное время, затраченное на образцы с одинаковым ярлыком.
  • Max - Максимальное время, затраченное на образцы с одинаковым ярлыком.
  • Std. Dev. - Стандартное отклонение времени, затраченного на образцы.
  • Error % - Процент запросов с ошибкой.
  • Throughput - Время отработки изменяется в запросах за секунду/минуту/час. Единица времени выбирается так, чтобы показатель составлял не меньше 1,0. Когда время отработки сохраняется в файл CSV, оно выражается в запросах за секунду, т.е. 30 запросов за минуту сохраняется как 0,5.
  • Kb/sec - Время отработки, измеренное в килобайтах за секунду.
  • Avg. Bytes - средний размер ответа на образец запроса в байтах.

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

Приведем все данные в виде таблицы.

Hosting Mini (php 5.6) 50 пользователей 100 пользователей  
1000 товаров Среднее время загрузки (мс) 1317 1399  
Доступность 100 100  
10000 товаров Среднее время загрузки (мс) 1317 1261  
Доступность 100 100  
Hosting Mini (php 7) 50 пользователей 100 пользователей  
1000 товаров Среднее время загрузки (мс) 875 829  
Доступность 100 100  
10000 товаров Среднее время загрузки (мс) 786 795  
Доступность 100 100  
Hosting Start (php 5.6) 50 пользователей 100 пользователей 300 пользователей
1000 товаров Среднее время загрузки (мс) 1419 1825 2266
Доступность 100% 100% 100%
10000 товаров Среднее время загрузки (мс) 1334 1967 2290
Доступность 100% 100% 100%
100000 товаров Среднее время загрузки (мс) 1475 1551 2170
Доступность 100% 100% 100%
Hosting Start (php 7) 50 пользователей 100 пользователей 300 пользователей
1000 товаров Среднее время загрузки (мс) 740 852 894
Доступность 100% 100% 100%
10000 товаров Среднее время загрузки (мс) 832 890 982
Доступность 100% 100% 100%
100000 товаров Среднее время загрузки (мс) 982 1007 951
Доступность 100% 100% 100%
Hosting Standart (php 5.6) 50 пользователей 100 пользователей 300 пользователей
1000 товаров Среднее время загрузки (мс) 690 721 750
Доступность 100% 100% 100%
10000 товаров Среднее время загрузки (мс)      
Доступность 100% 100% 100%
100000 товаров Среднее время загрузки (мс) 768мс 930мс 948
Доступность 100% 100% 100%
Hosting Standart (php 7) 50 пользователей 100 пользователей 300 пользователей
1000 товаров Среднее время загрузки (мс) 800 796 850
Доступность 100% 100% 100%
10000 товаров Среднее время загрузки (мс) 760 730 744
Доступность 100% 100% 100%
100000 товаров Среднее время загрузки (мс) 880 838 750
Доступность 100% 100% 100%


Таким образом можно рассчитать потенциальную нагрузку на ваш интернет-магазин и стоимость обслуживания по мере масштабирования.

Основные выводы

  • Во время тестирования мы определили, что хостинг с поддержкой php 7 и ionCube php 7 Loader примерно в два раза быстрее, чем без поддержки.
  • Хостинг с конфигурацией Mini оптимально работает с нагрузкой до 100 одновременных пользователей с базой до 10000 товаров, показывая при этом приемлемый для зеленой отметки Google Page Speed Insights показатель загрузки html кода страницы в 700 мс.
  • Хостинг с конфигурацией Start оптимально работает с нагрузкой до 300 одновременных пользователей с базой в 10000 товаров, показывая при этом приемлемый для зеленой отметки Google Page Speed Insights показатель загрузки html кода страницы в 800 мс.
  • Хостинг с конфигурацией Standard оптимально работает с нагрузкой до 300 одновременных пользователей с базой в 100000 товаров, показывая при этом приемлемый для зеленой отметки Google Page Speed Insights показатель загрузки html кода страницы в 800 мс.

Если вы хотите провести какой-то дополнительный тест с другими параметрами, обращайтесь к нашим консультантам и мы с радостью вам поможем.

Читайте также:
19 Октября 2016 1431 0
Подпишитесь на еженедельную рассылку и получайте скидки на популярные e-commerce продукты
И совсем скоро Вы станете гуру в e-commerce, веб-разработке, SEO и в интернет-маркетинге! Развивайте свой бизнес с актуальной информацией, успешными кейсами и вдохновляющими примерами.
(Комментарии: 0)
Вы должны , чтоб присоединиться к разговору
Давайте дружить!

Узнавайте все новости, получайте обзоры, кейсы
и другие полезные материалы по e-commerce через социальные сети!

Консультация по ImageCMS Shop
 
Уже уходите? Еще секундочку!

Зарегистрируйтесь, и вам навсегда обеспечены скидки на популярные
e-commerce продукты! Также мы будем делиться с вами самой ценной
информацией для развития вашего бизнеса.

или