141 votes

Pourquoi est-il si lent Magento ?

Magento est habituellement si terriblement lent ?

Il s’agit de ma première expérience avec elle et le panneau d’administration simplement prend une éternité pour charger et enregistrer les modifications. C’est une installation par défaut avec les données de test.

Le serveur où il est hébergé sert des autres sites non-Magento super rapides. Qu’est-ce tout le code PHP qui utilise Magento qui le rend si lent, et que peut-on faire pour y remédier ?

188voto

Alan Storm Points 82442

J'ai seulement indirectement impliqués dans l'optimisation de Magento pour la performance, mais voici quelques raisons pourquoi le système est si lent

  1. Pièces de Magento utilisation d'un VAE système de base de données mis en œuvre sur le dessus de MySQL. Cela signifie que l'interrogation d'une seule "chose" signifie souvent l'interrogation de plusieurs lignes

  2. Il y a beaucoup de choses en coulisses (de configuration de l'application, la configuration système, la mise en page de config, etc.) qui impliquent la construction d'immenses arbres XML en mémoire, puis "l'interrogation" de ces mêmes arbres pour plus d'informations. Ce qui prend beaucoup de mémoire (stockage de l'arbre) et le PROCESSEUR (l'analyse des arbres). Certains de ces pays (en particulier la mise en page de l'arbre) sont énormes. Aussi, à moins que la mise en cache est sur, ces arbres sont construits à partir de fichiers sur le disque et sur chaque demande.

  3. Magento utilise son système de configuration pour vous permettre de surcharger les classes. C'est une fonctionnalité puissante, mais elle signifie tout moment d'un modèle, d'aide, ou le contrôleur est instancié, extra instructions PHP besoin de courir pour déterminer si une classe originale de fichier ou de remplacer des fichiers de classe est nécessaire. Cela s'additionne.

  4. Outre le système de mise en page, Magento modèle de système implique beaucoup de récursive de rendu. Cela s'additionne.

En général, le Magento Ingénieurs ont pour mission, d'abord et avant tout, avec la construction de la plus flexible, personnalisable possible, et de se soucier de la performance à plus tard.

La première chose que vous pouvez faire pour assurer une meilleure performance est d'activer la mise en cache (Système -> Gestion du Cache). Cela permettra de soulager le CPU/disque de blocage qui se passe lors de Magento est la construction de ses divers arbres XML.

La deuxième chose que vous allez vouloir faire est de s'assurer que votre hôte et les opérations de l'équipe a de l'expérience de réglage des performances de Magento. Si vous êtes en s'appuyant sur les 7 $/mois plan pour vous voir à travers, et bien, bonne chance avec ça.

54voto

benlumley Points 8114

Suite à Alan Tempête des recommandations sur la mise en cache, il y a deux choses que je voudrais vous recommandons spécifiquement examiner liées à la mise en cache:

- Assurez-vous que la mise en cache est dans memcached, plutôt que sur disque.

Je regarde après une couple de magento installe, et une fois que vous obtenez toute sorte de charge sur le système, memcached commence à effectuer beaucoup plus rapidement. Et ses morts facile de changer plus (par rapport à faire d'autres magento choses à au moins!)

Bon point de départ est ici: http://www.magentocommerce.com/boards/viewthread/12998/P30/ - mais si vous n'avez pas utilisé memcached à tous avant de, sa peine de regarder certaines des informations générales à ce sujet.

- Activer modèle/vue de la mise en cache.

C'est un bon article: http://inchoo.net/ecommerce/magento/magento-block-caching/

Il y a des bons sur le site magento trop (google magento bloc de cache), mais son vers le bas à la moment.

Pour ajouter mon grain de sel pour le bloc de mise en cache, je vous conseille de créer vos propres blocs dans /app/code/local, l'extension de la base et de définir les paramètres de cache, leur nom xxx_Cache et ensuite mettre à jour votre mise en page à utiliser ces blocs à la place du cœur. De cette façon, vous éviter de perdre vos modifications ou de casser le système lorsque vous mettez à niveau magento.

23voto

Laizer Points 1599

Si vous n'avez pas encore vu, Magento et Rackspace en équipe pour créer un livre blanc sur l'optimisation des performances de Magento. C'est une excellente. http://www.magentocommerce.com/whitepaper

--- edit ---

Une autre grande ressource, nouvellement disponibles (Oct 2011) est: http://blog.sessiondigital.com/post/5764403845/high-performance-magento

(Merci due à Alan Tempête sur celui-ci.)

18voto

JazzHands Points 1700

Vous pouvez essayer cela - pas garanti, mais a aidé beaucoup de gens :

http://inchoo.net/ecommerce/Magento/Boost-The-Speed-of-your-Magento/

17voto

Sam Figueroa Points 1312

Il est peut-être aussi un très non-évidence la raison pour laquelle votre interface d'administration est très lent. Magento dispose d'un module nommé Mage_AdminNotification. Essayez de désactiver ext. Parce que ce qu'il fait est de requête magentocommerce.com pour les nouveaux messages de mise à jour. Si leurs serveurs sont lents votre page d'administration attend et est en effet lent à cause de la latence réseau et le chargement des informations externes. Si vous avez sécurisé votre serveur de courrier sortant la connexion à travers un pare-feu cela peut être encore plus frustrant, depuis l'interface d'admin va attendre que le délai d'attente lors qu'il ne peut atteindre magentocommerce.com

Pour le désactiver: allez dans Système -> Configuration, faites défiler vers le bas et frapper Avancé(dans la section "Avancé"). Maintenant désactiver Mage_AdminNotification et d'économiser!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X