Вопрос

Неужели Magento обычно такой ужасно медленный?

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

Сервер, на котором он размещен, очень быстро обслуживает другие сайты, не относящиеся к Magento.Что такого в используемом Magento PHP-коде, что делает его таким медленным, и что можно сделать, чтобы это исправить?

Это было полезно?

Решение

Я лишь косвенно участвовал в оптимизации Magento для повышения производительности, но вот несколько причин, почему система работает так медленно

  1. Части Magento используют систему баз данных EAV, реализованную поверх MySQL.Это означает, что запрос одной "вещи" часто означает запрос нескольких строк

  2. Есть много вещей за кулисами (конфигурация приложения, конфигурация системы, конфигурация макета и т.д.), Которые включают в себя создание гигантских XML-деревьев в памяти, а затем "запрос" этих же деревьев для получения информации.Для этого требуется как память (хранение деревьев), так и процессор (синтаксический анализ деревьев).Некоторые из них (особенно дерево макета) огромны.Кроме того, если кэширование не включено, эти деревья создаются из файлов на диске и по каждому запросу.

  3. Magento использует свою систему настройки, позволяющую вам переопределять классы.Это мощная функция, но это означает, что всякий раз, когда создается экземпляр модели, помощника или контроллера, необходимо запускать дополнительные инструкции PHP, чтобы определить, нужен ли исходный файл класса или файлы переопределенного класса.Это суммируется.

  4. Помимо системы верстки, система шаблонов Magento включает в себя много рекурсивного рендеринга.Это суммируется.

В общем, перед инженерами Magento стояла задача, в первую очередь, создать максимально гибкую, настраиваемую систему, а уже потом беспокоиться о производительности.

Первое, что вы можете сделать для повышения производительности, - это включить кэширование (Система -> Управление кэшем).Это частично снимет блокировку процессора / диска, которая происходит, пока Magento создает свои различные XML-деревья.

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

Другие советы

В дополнение к рекомендациям Alan Storm по кешированию, я бы порекомендовал вам две вещи, связанные с кешированием:

. Убедитесь, что кэширование выполняется в memcached, а не на диске.

Я смотрю после нескольких установок magento, и как только вы получаете какую-либо нагрузку на систему, memcached начинает работать намного быстрее. И его очень легко изменить (по крайней мере, по сравнению с другими вещами в пурпурном!)

Хорошая отправная точка здесь: http://www.magentocommerce.com/boards / viewthread / 12998 / P30 / - но если вы раньше не использовали memcached, то стоит также посмотреть некоторую общую информацию об этом.

- Включите кэширование шаблонов / представлений.

Это хорошая статья: http://inchoo.net/ecommerce/magento / Magento-блок-кэширование /

На сайте 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 и сохраните!

У меня только поверхностный опыт работы с Magento. Я установил его на общий grid-сервер, и загрузка страницы была мрачной ~ 5 + секунд. В общем, я установил его на свой оптимизированный для CMS сайт, выделенный сервер, и он чувствовал себя очень, очень быстро.

В моем выделенном хостинге было ~ 10 Joomla! сайты и сайт VBullitin работает.

Полагаю, на общем хостинге это просто не получится. Чрезмерная подписка просто не позволит достаточно ресурсов для запуска Magento, как это должно быть.

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

Я полностью разделяю мнение Бенлумли относительно кеша. На большинстве сайтов, которые мы размещаем, даже нет включения блочного кэширования. Этот кэш должен быть явно вызван, а не «предположен». Так что, если ваш код еще не принял участие в этом механизме, это то, что вы определенно хотите попробовать. Если у вас есть версия EE, вы можете получить полную страницу, чтобы получить лучшее от зверя.

Обратный прокси также очень поможет. Он будет кешировать статические ресурсы, что значительно снизит нагрузку на стек интерпретации php ваших фронт-серверов.

Не забудьте написать сеансы & amp; Кеш Magento на диск RAM. Это также определенно выведет вас на другой уровень производительности.

Здесь еще многое нужно сказать, но у меня заканчивается время. Вы должны знать, что хороший сайт, хорошо закодированный в версии 1.4.1 CE, работающий на сервере ОЗУ Xeon + 16 ГБ 2x5650 и имеющий Rproxy сверху, может принимать до 50 000 уникальных посетителей в день с гладкими страницами для всех .

Переход с Apache на LiteSpeed нам очень помог.В дополнение к:Редактирование настроек MySQL, установка Fooman Speedster (модуля для сжатия / объединения файлов js и css) и установка APC.Magento также опубликовала технический документ о том, как добиться максимальной производительности enterprise Edition, но он в равной степени применим и к другим версиям: http://www.magentocommerce.com/whitepaper/

Существует много причин, по которым ваша корзина Magento может работать медленно, но нет оправданий тому, что существует множество способов решить проблему и сделать ее чертовски быстрой. Включение Gzip путем изменения файла htaccess - это начало. Вы также можете установить расширение Fooman Speedster. Тип используемого сервера также будет определять скорость вашего магазина. Дополнительные советы и лучшее объяснение здесь http://www.interactone.com/ как к скорости вверх-Magento /

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

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

Когда я впервые установил, у меня были страницы, загрузка которых заняла 30 секунд. Мой сервер не был максимально загружен в оперативную память или процессор, поэтому я не знал, что делать. Глядя на сетевую панель firebug, она загружала около 100 файлов на страницу, и каждому требовалось много времени для подключения. После установки fooman speedster и gzip в htaccess время загрузки уменьшилось до 3 секунд, как это было в других корзинах на моем сервере.

это также будет зависеть от функциональности и производительности.

Необработанная производительность достигается с помощью nginx, php-fpm, memcached, apc и правильно спроектированного сервера.

Функциональность, например производительность plesk и magento, может управляться с учетом всей инфраструктуры в перспективе при проектировании облака производительности magento.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top