Анализ эффекта внедрения «Быстрого ядра Magento» в магазине intex-optom.com

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
#1 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8886
  • Регистрация: 20.02.2010

21.06.2014 06:12

В этой статье проводится анализ эффекта внедрения «Быстрого ядра Magento» в магазине intex-optom.com.

Для тестирования были подготовлены 2 сайта на одном и том же сервере:
  • Первый сайт является копией магазина intex-optom.com до внедрения «Быстрого ядра Magento».
  • Второй сайт является копией магазина intex-optom.com после внедрения «Быстрого ядра Magento».

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

«Быстрое ядро Magento» эффективно тогда, когда страницы по какой-то причине нет в полностраничном кэше.
Таких причин может быть две:
  • Требующая отображения страница магазина должна быть индивидуальна для конкретного покупателя, и поэтому такие страницы не имеет смысла хранить в полностраничном кэше. Индивидуальными являются страницы личного кабинета покупателя, страница оформления заказа, а также страницы каталога после того, как покупатель наполнил корзину товарами.
  • Требующая отображения страница магазина отсутствует ещё в полностраничном кэше.
    Страница может отсутствовать в полностраничном кэше по следующим причинам:
    • Администратор обновил кэш
    • Администратор отредактировал учётный объект (например, товар), который надлежит отображать на данной странице (и поэтому страницу надо перерисовать заново)
    • Система произвела обмен данными с внешней учётной системой (например, «1С: Управление торговлей» или «Мой Склад»), учётные объекты (например, товары) обновились, и информация в полностраничном кэше стала неактуальной, страницу надо перерисовать заново

Как видно, есть много ситуаций, когда полностраничное кэширование не работает, и именно в этих ситуациях, когда нужно заново перерисовать страницу, вступает в игру и проявляет себя «Быстрое ядро Magento».

При оценке приведённых ниже цифр надо понимать, что эти цифры не совсем отражают реальную производительность Российской сборки Magento.
Российская сборка Magento работает, как правило, быстрее.
Приведённые ниже цифры отражают производительность Российской сборки Magento при отключенном полностраничном кэшировании.

Производительность замерялась программой JMeter.
Проводилось 3 теста:
  • Тест загрузки страниц товаров.
    Программа JMeter последовательно загружала 10 товарных страниц по 20 раз каждую, итого сервер должен был сформировать 200 страниц.
    С сайта без «Быстрого ядра Magento» товарная страница загружалась в среднем за 512 милисекунд.
    С сайта с «Быстрым ядром Magento» товарная страница загружалась в среднем за 377 милисекунд.
    «Быстрое ядро Magento» дало прирост производительности на 26%.
    Прикрепленное изображение: товар.png

  • Тест загрузки страниц списка товаров.
    Программа JMeter последовательно загружала 10 страниц списка товаров по 20 раз каждую, итого сервер должен был сформировать 200 страниц.
    С сайта без «Быстрого ядра Magento» страница списка товаров загружалась в среднем за 255 милисекунд.
    С сайта с «Быстрым ядром Magento» страница списка товаров загружалась в среднем за 207 милисекунд.
    «Быстрое ядро Magento» дало прирост производительности на 19%.
    Прикрепленное изображение: список-товаров.png

  • Тест загрузки главной страницы.
    Программа JMeter последовательно загружала главную страницу 200 раз подряд, итого сервер должен был сформировать 200 страниц.
    С сайта без «Быстрого ядра Magento» главная страница загружалась в среднем за 237 милисекунд.
    С сайта с «Быстрым ядром Magento» главная страница загружалась в среднем за 187 милисекунд.
    «Быстрое ядро Magento» дало прирост производительности на 21%.
    Прикрепленное изображение: главная.png


Обратите внимание, что в целом «Быстрое ядро Magento» в данных тестах дало прирост производительности ниже заявленных 30%.
Так получилось потому, что при тестировании использовался быстрый, профессионально мной оптимизированный сервер EX40-SSD (который я рекомендую и бесплатно настраиваю для Российской сборки Magento), а также профессионально настроенный мной быстрый дистрибутив PHP.
В таких условиях сайт даже без «Быстрого ядра Magento» работал быстро (но всё равно на 20% медленнее, чем с «Быстрым ядром Magento»).
В реальных условиях у среднего клиента на среднем сервере прирост производительности от «Быстрого ядра Magento» будет 30% и выше, потому что возврастёт разница между скоростью работу интерпретатора PHP и скоростью работы скомпилированного в машинный код «Быстрого ядра Magento».

Отчёт в формате Excel с полными данными и графиками:
Прикрепленный файл  intex-optom.com.xls (91.5К)
Количество загрузок:: 269

Использованные для тестирования профили JMeter с исходными данными и результатами тестирования:
Прикрепленный файл  jmeter-profiles.zip (6.95К)
Количество загрузок:: 229

Поделиться темой: