Question

Magento est-il habituellement si terriblement lent?

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

Le serveur sur lequel il est hébergé sert très rapidement d'autres sites non Magento. En quoi le code PHP utilisé par Magento est-il si lent et que peut-on faire pour le réparer?

Était-ce utile?

La solution

Je n'ai participé à l'optimisation de Magento que de manière tangible, mais voici quelques raisons pour lesquelles le système est si lent

  1. Certaines parties de Magento utilisent un système de base de données EAV implémenté par-dessus MySQL. Cela signifie interroger un " chose " signifie souvent interroger plusieurs lignes

  2. Il y a beaucoup de choses dans les coulisses (configuration de l'application, configuration du système, configuration de la présentation, etc.) qui impliquent la création en mémoire d'arbres XML géants, puis "interrogation". ces mêmes arbres pour information. Cela prend à la fois de la mémoire (stockage des arbres) et du processeur (analyse des arbres). Certains d'entre eux (en particulier l'arbre de disposition) sont énormes. De plus, à moins que la mise en cache ne soit activée, ces arborescences sont créées à partir des fichiers du disque et à chaque demande .

  3. Magento utilise son système de configuration pour vous permettre de remplacer des classes. C'est une fonctionnalité puissante, mais cela signifie qu'à chaque fois qu'un modèle, une assistance ou un contrôleur est instancié, des instructions PHP supplémentaires doivent être exécutées pour déterminer si un fichier de classe d'origine ou un fichier de classe de remplacement est nécessaire. Cela s’ajoute.

  4. Outre le système de présentation, le système de modèles de Magento implique un grand nombre de rendus récursifs. Cela s’ajoute.

En règle générale, les ingénieurs de Magento ont été chargés avant tout de créer le système le plus flexible et personnalisable possible, puis de s’inquiéter des performances.

La première chose à faire pour améliorer les performances est d'activer la mise en cache (Système - > Cache Management). Cela soulagera une partie du blocage processeur / disque qui se produit pendant que Magento construit ses différentes arborescences XML.

La deuxième chose à faire est de veiller à ce que votre hôte et votre équipe d'exploitation aient l'expérience nécessaire pour optimiser les performances de Magento. Si vous comptez sur le plan de 7 $ / mois pour vous mener à bien, eh bien, bonne chance avec cela.

Autres conseils

En plus des recommandations d'Alan Storm sur la mise en cache, il y a deux choses que je vous recommande particulièrement d'examiner dans le cadre de la mise en cache:

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

Je m'occupe de quelques installations de Magento et une fois que vous avez une charge quelconque sur le système, memcached commence à fonctionner beaucoup plus rapidement. Et il est très facile de le changer (par rapport à d’autres magento au moins!)

Le bon point de départ est ici: http://www.magentocommerce.com/boards / viewthread / 12998 / P30 / - mais si vous n’avez jamais utilisé memcached auparavant, vous pouvez également consulter certaines informations générales à ce sujet.

: activez la mise en cache des modèles / vues.

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

Il y en a de bons sur le site magento aussi (mise en cache de bloc de Google magento), mais sa baisse pour le moment.

Pour ajouter mes deux sous à la mise en cache des blocs, je vous conseillerais de créer vos propres blocs dans / app / code / local, d'étendre ceux de base et de définir les paramètres de cache, de les nommer xxx_Cache, puis de mettre à jour votre mise en page à utiliser. ces blocs au lieu de ceux de base. Ainsi, vous éviterez de perdre vos modifications ou de casser le système lors de la mise à niveau de magento.

Si vous ne l'avez pas encore vu, Magento et Rackspace se sont associés pour créer un livre blanc sur le réglage des performances de Magento. C'est excellent. https : //support.rackspace.com/whitepapers/building-secure-scalable-and-highly-available-magento-stores-powered-by-rackspace-solutions/

--- modifier ---

Une autre excellente ressource, récemment disponible (octobre 2011), est la suivante: http://www.sessiondigital.com/assets/Uploads/ Mag-Perf-WP-final.pdf

(Merci à Alan Storm pour celui-ci.)

Il y a peut-être aussi une raison très peu évidente pour laquelle votre interface d’administration est très lente. Magento a un module nommé Mage_AdminNotification. Essayez de désactiver cette extension. Car ce qu’il fait, c’est interroger magentocommerce.com sur les nouveaux messages de mise à jour. Si leurs serveurs sont lents, votre page d’administration attend et est effectivement ralentie à cause du décalage du réseau et du chargement des nouvelles externes. Si vous avez sécurisé votre connexion de serveur sortant via un pare-feu, cela peut être encore plus frustrant, car l'interface d'administration attendra le délai d'attente lorsqu'elle ne peut pas atteindre magentocommerce.com

Pour le désactiver: allez dans Système - > Configuration, faites défiler vers le bas et appuyez sur Avancé (dans la section Avancé). Désactivez maintenant Mage_AdminNotification et enregistrez!

Je n'ai qu'une expérience superficielle de Magento. Je l'ai installé sur un serveur de grille partagé et le chargement de la page a été lamentable ~ 5 secondes. Sur une alouette, je l’ai installé sur mon serveur dédié optimisé pour les sites CMS, et je me suis senti très très vif.

Mon hébergement dédié avait environ 10 Joomla! sites et un site VBullitin en cours d'exécution.

Je pense que cela ne sera tout simplement pas performant en hébergement partagé. Le surabonnement ne permettra pas à Magento de disposer de suffisamment de ressources pour fonctionner comme il se doit.

Je suis davantage impliqué dans l'optimisation du serveur géré dans mon entreprise, mais j'ai peut-être quelques conseils à vous donner. Tout d'abord, vous pouvez examiner le code de plus près à l'aide de la fonctionnalité de traçage de code du serveur Zend. Cela vous permettra de voir où et quand les choses se salissent.

Je partage totalement la considération de Benlumley concernant la cache. La plupart des sites que nous hébergeons ne disposent même pas de la mise en cache bloquée. Ce cache doit être appelé explicitement et non "supposé". Donc, si votre code n'a pas encore pris part à ce mécanisme, c'est quelque chose que vous voulez absolument essayer. Si vous avez une version EE, vous pouvez afficher la page complète afin d’obtenir le meilleur de la bête.

Un proxy inverse aidera également beaucoup. Il va mettre en cache les ressources statiques, réduisant ainsi considérablement la pression sur la pile d’interprétation php de vos serveurs frontaux.

N'oubliez pas d'écrire les sessions & amp; Magento cache sur un disque RAM. Cela vous mènera également à un autre niveau de performances.

Il reste encore beaucoup à dire, mais le temps me manque. Vous devez savoir qu'un bon site, bien codé dans une version 1.4.1 CE, fonctionnant sur un serveur 2x5650 Xeon + 16 Go de RAM et ayant un Rproxy en tête peut prendre jusqu'à 50 000 visiteurs uniques par jour avec des pages lisses pour tous .

Passer d’Apache à LiteSpeed ??nous a beaucoup aidés. En plus de: modifier les paramètres de MySQL, installer Fooman Speedster (module pour compresser / combiner les fichiers js et css) et installer APC. Magento a également publié un livre blanc sur la manière d'obtenir les meilleures performances de l'édition d'entreprise, mais il est également applicable aux autres versions: http://www.magentocommerce.com/whitepaper/

Plusieurs raisons peuvent expliquer la lenteur de votre panier d'achat Magento, mais aucune excuse, car il existe différentes façons de résoudre le problème et de le rendre extrêmement rapide. Activer Gzip en modifiant votre fichier htaccess est un début. Vous pouvez également installer l'extension fooman speedster. Le type de serveur utilisé déterminera également la vitesse de votre magasin. Plus de conseils et une meilleure explication ici http://www.interactone.com/ comment-accélérer-magento /

Magento est très lent car la conception de la base de données n’est pas très bonne. Le code est un désordre et très difficile à mettre à jour et à optimiser. Toutes les optimisations sont donc effectuées via le cache au lieu du code.

D'autre part. C'est une boutique en ligne avec beaucoup d'outils. Donc, si vous avez besoin d’une boutique en ligne flexible, achetez un serveur très puissant et tout ira bien.

Lors de ma première installation, le chargement des pages prenait 30 secondes. Mon serveur n'était pas saturé en RAM ni en processeur, je ne savais donc pas quoi faire. En regardant le panneau réseau de Firebug, il chargeait environ 100 fichiers par page, et chacun prenait beaucoup de temps pour se connecter. Après l’installation de fooman speedster et du gzip dans les chargements htaccess, il ne restait que 3 secondes, comme sur un autre panier d’achat sur mon serveur.

il sera également question de fonctionnalité et de performance.

Les performances brutes sont obtenues avec nginx, php-fpm, memcached, apc et un serveur conçu de manière appropriée.

Des fonctionnalités telles que les performances de plesk et de magento pourraient être gérées en prenant toute l’infrastructure en perspective lors de la conception d’un cloud de performance magento.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top