Magento EE 1.x занимает слишком много времени для загрузки из-за layout / db_update

Наш магазин Magento работает слишком медленно и занимает около 1 минуты для загрузки страницы. Ниже приведен вывод в профилировщике. Пожалуйста, дайте нам знать, что такое db_update и почему это занимает слишком много времени и как мы можем это исправить.

layout/db_update: default                               20.6206 1   0   0
layout/db_update: STORE_default                         20.6189 1   0   0
layout/db_update: MAP_popup                             20.6146 1   0   0
layout/db_update: MAP_price_msrp_item                   20.6131 1   0   0
layout/db_update: SHORTCUT_popup                        20.6116 1   0   0
layout/db_update: SHORTCUT_uk_popup                     20.6098 1   0   0
layout/db_update: catalog_product_view                  20.6077 1   0   0
layout/db_update: PRODUCT_TYPE_simple                   20.6062 1   0   0
layout/db_update: customer_logged_out                   20.6032 1   0   0

2

Решение

Ты можешь использовать Aoe_Profiler расширение для отладки деталей. Вы можете установить его отсюда:
https://github.com/AOEpeople/Aoe_Profiler

Также следуйте этому руководству:
http://fbrnc.net/blog/2012/08/magento-profiler#hello

Я думаю, что это поможет вам оптимизировать время, затрачиваемое на различные темы.

1

Другие решения

Единственное место в коде, где работает этот профиль, это функция Mage_Core_Model_Layout_Update::fetchDbLayoutUpdates,

Может быть несколько причин, по которым при каждом запуске функции потребуется 20 секунд в порядке вероятности:

  1. Пользовательский код или стороннее расширение, которое выполняет дорогостоящие операции во время обновления макета. Например переопределение Mage::getResourceModel('core/layout')->fetchUpdatesByHandle() или любая из моделей / помощников, используемых внутри этой функции (которых много).
  2. Проблемы инфраструктуры (вероятно, связанные с базой данных)
    • Очень медленная / перегруженная база данных
    • Проблемы со скоростью при подключении к БД

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

Я лично предпочитаю использовать NewRelic (или аналогичный сервис), потому что он также покажет следы какие части кода, запросы к БД или сторонние API работают медленно, что дает вам более полную картину всего, что может замедлить работу вашего сайта.

(отказ от ответственности: я — партнер NewRelic)

0

По вопросам рекламы [email protected]