Magento обычно ужасно медленный?
Это мой первый опыт работы с ним, и админке просто требуется много времени, чтобы загрузить и сохранить изменения. Это установка по умолчанию с тестовыми данными.
Сервер, на котором он размещен, очень быстро обслуживает другие сайты, не относящиеся к Magento. Что такого медленного в PHP-коде, который использует Magento, и что можно сделать, чтобы это исправить?
php
magento
optimization
MR-евро
источник
источник
Ответы:
Я лишь косвенно участвовал в оптимизации Magento для повышения производительности, но вот несколько причин, по которым система такая медленная.
Некоторые части Magento используют систему баз данных EAV, реализованную поверх MySQL. Это означает, что запрос одной "вещи" часто означает запрос нескольких строк.
За кулисами скрывается множество вещей (конфигурация приложения, конфигурация системы, конфигурация компоновки и т. Д.), Которые включают построение гигантских деревьев XML в памяти с последующим «запросом» информации по этим же деревьям. Для этого требуется как память (хранение деревьев), так и процессор (анализ деревьев). Некоторые из них (особенно дерево макета) огромны. Кроме того, если не включено кеширование, эти деревья строятся из файлов на диске и по каждому запросу .
Magento использует свою систему конфигурации, чтобы вы могли переопределять классы. Это мощная функция, но она означает, что каждый раз при создании экземпляра модели, помощника или контроллера необходимо запускать дополнительные инструкции PHP, чтобы определить, нужен ли исходный файл класса или файлы классов переопределения. Это складывается.
Помимо системы макета, система шаблонов Magento включает в себя много рекурсивного рендеринга. Это складывается.
В общем, перед инженерами Magento была поставлена задача, прежде всего, создать максимально гибкую, настраиваемую систему, а потом беспокоиться о производительности.
Первое, что вы можете сделать, чтобы обеспечить лучшую производительность, - это включить кеширование (Система -> Управление кешем). Это снимет часть блокировки ЦП / диска, которая происходит, пока Magento создает различные деревья XML.
Второе, что вам нужно сделать, это убедиться, что ваш хост и операционная команда имеют опыт настройки производительности Magento. Если вы рассчитываете на план в 7 долларов в месяц, чтобы довести вас до конца, что ж, удачи в этом.
источник
В дополнение к рекомендациям Алана Сторма по кешированию, я особенно рекомендую вам изучить две вещи, связанные с кешированием:
- Убедитесь, что кэширование происходит в memcached, а не на диске.
Я слежу за парой установок magento, и как только вы получаете какую-либо нагрузку на систему, memcached начинает работать намного быстрее. И его очень легко изменить (по крайней мере, по сравнению с другими вещами Magento!)
Хорошая отправная точка здесь: http://www.magentocommerce.com/boards/viewthread/12998/P30/, но если вы раньше не использовали memcached, стоит также посмотреть некоторую общую информацию об этом.
- Включить кеширование шаблонов / представлений.
Это хорошая статья: http://inchoo.net/ecommerce/magento/magento-block-caching/
На сайте magento тоже есть хорошие (кеширование блоков google magento), но на данный момент он не работает.
Чтобы добавить мои два цента к кешированию блоков, я бы посоветовал вам создать свои собственные блоки в / app / code / local, расширить основные и определить параметры кеша, назовите их xxx_Cache и затем обновите макет, чтобы вместо них использовать эти блоки. из основных. Таким образом, вы не потеряете свои изменения или не сломаете систему при обновлении Magento.
источник
Если вы еще не видели этого, Magento и Rackspace объединились, чтобы создать технический документ по настройке производительности Magento. Отлично. https://support.rackspace.com/whitepapers/building-secure-scalable-and-highly-available-magento-stores-powered-by-rackspace-solutions/
--- редактировать ---
Еще один замечательный ресурс, недавно доступный (октябрь 2011 г.): http://www.sessiondigital.com/assets/Uploads/Mag-Perf-WP-final.pdf
(Спасибо за это Алану Сторму.)
источник
Возможно, существует также очень неочевидная причина, по которой ваш интерфейс администратора работает очень медленно. В Magento есть модуль Mage_AdminNotification. Попробуйте отключить этот доп. Потому что он запрашивает новые сообщения об обновлениях на magentocommerce.com. Если их серверы работают медленно, ваша страница администратора ждет и, по сути, работает медленно из-за задержки сети и загрузки внешних новостей. Если вы защитили исходящее соединение с сервером через брандмауэр, это может быть еще более неприятным, поскольку интерфейс администратора будет ждать тайм-аута, когда он не сможет связаться с magentocommerce.com.
Чтобы отключить его: перейдите в Система -> Конфигурация, прокрутите вниз и нажмите Дополнительно (в разделе Дополнительно). А теперь отключите
Mage_AdminNotification
и сохраните!источник
Mage_AdminNotification
.У меня лишь поверхностный опыт работы с Magento. Я установил его на общий грид-сервер, и загрузка страницы была унылой ~ 5+ секунд. Ради забавы, я установил его на свой выделенный сервер, оптимизированный для сайтов CMS, и он оказался очень и очень быстрым.
На моем выделенном хостинге было ~ 10 Joomla! сайты и сайт VBullitin работает.
Я предполагаю, что он просто не будет работать на виртуальном хостинге. Избыточная подписка не позволит Magento работать должным образом.
источник
Я больше занимаюсь оптимизацией управляемых серверов в своей компании, но, возможно, дам вам несколько советов. Во-первых, вы можете более внимательно изучить код, используя функцию трассировки кода сервера Zend. Это позволит вам увидеть, где и когда вещи пачкаются.
Я полностью разделяю мнение Бенлумли относительно кеша. На большинстве сайтов, которые мы размещаем, даже не включено кеширование блоков. Этот кеш должен вызываться явно, а не «предполагаться». Так что, если ваш код еще не задействован в этом механизме, вы обязательно захотите попробовать это. Если у вас есть версия EE, вы можете получить полную страницу, чтобы получить лучшее от зверя.
Обратный прокси тоже очень поможет. Он кэширует статические ресурсы, значительно снижая нагрузку на стек интерпретации php ваших фронт-серверов.
Не забудьте записать сеансы и кеш Magento на RAM-диск. Это также обязательно выведет вас на другой уровень выступлений.
Здесь еще есть что сказать, но у меня не хватает времени. Вы должны знать, что хороший сайт, хорошо закодированный в версии 1.4.1 CE, работающий на сервере 2x5650 Xeon + 16 ГБ RAM и имеющий Rproxy поверх, может принимать до 50 000 уникальных посетителей в день с гладкими страницами для всех. .
источник
Переход с Apache на LiteSpeed нам очень помог. В дополнение к: редактированию настроек MySQL, установке Fooman Speedster (модуль для сжатия / объединения файлов js и css) и установке APC. Magento также опубликовал официальный документ о том, как добиться максимальной производительности от корпоративной версии, но он в равной степени применим и к другим версиям: http://www.magentocommerce.com/whitepaper/
источник
Есть много причин, по которым ваша корзина для покупок в Magento может работать медленно, но нет никаких оправданий, поскольку существует множество способов решить проблему и сделать ее чертовски быстрой. Включение Gzip путем изменения файла htaccess - это начало. Вы также можете установить надставку fooman speedster. Тип используемого сервера также определит скорость вашего магазина. Дополнительные советы и лучшее объяснение здесь http://www.interactone.com/how-to-speed-up-magento/
источник
Когда я впервые установил, у меня были страницы, которые загружались 30 секунд. Мой сервер не был полностью загружен оперативной памятью или процессором, поэтому я не знал, что делать. Глядя на сетевую панель firebug, она загружала около 100 файлов на страницу, и для каждого из них требовалось много времени для подключения. После установки fooman speedster и gzip в htaccess время загрузки сократилось до 3 секунд, как и на других тележках для покупок на моем сервере.
источник
Magento работает очень медленно, потому что дизайн базы данных не очень хорош. Код запутан, и его очень сложно обновлять и оптимизировать. Таким образом, все оптимизации выполняются через кеш, а не через код.
С другой стороны. Это интернет-магазин с множеством инструментов. Так что, если вам нужен гибкий интернет-магазин, просто купите очень мощный сервер, и все будет в порядке.
источник
это также будет зависеть от функциональности по сравнению с производительностью.
Чистая производительность достигается с помощью nginx, php-fpm, memcached, apc и правильно спроектированного сервера.
Функциональными возможностями, такими как производительность plesk и magento, можно управлять, рассматривая всю инфраструктуру в перспективе при разработке облака производительности magento.
источник