Magento pour les concepteurs optimisation

Magento est une plate-forme de commerce électronique incroyablement puissante. Dans cette mini-série, nous allons apprendre à utiliser la plate-forme, à connaître les terminologies, à créer un magasin et tous les aspects connexes, et enfin à le personnaliser pour l'adapter à votre image..

Dans cette dernière partie, nous allons nous attaquer à l’un des plus gros problèmes que les gens ont avec Magento: sa performance. Nous passerons en revue différentes méthodes que vous pourriez appliquer pour renforcer considérablement la plate-forme. Excité? Commençons!


La série complète

  • Partie 1: Installation et configuration
  • Partie 2: Produits, taxes, catégories, passerelles de paiement, etc..
  • Partie 3: Theming
  • Partie 4: Construire le thème
  • Partie 5: Création de la page d'informations sur le produit
  • Partie 6: Construction de la page d'accueil, avec un curseur de contenu
  • Partie 7: La fonctionnalité multi-magasin légendaire
  • Partie 8: Optimisation

Une récapitulation rapide

Dans les dernières parties, nous avons examiné en détail la manière dont les thèmes Magento sont assemblés, les composants qui le pilotent et la manière dont tout fonctionne ensemble pour créer un thème de travail, ainsi qu'un aperçu rapide de plusieurs méthodes d'API exposées par Magento. Nous avons également examiné, étape par étape, ce qu'est Magento multi store, comment il peut vous aider et, enfin, comment tout configurer..


Qu'allons nous faire aujourd'hui?

Les performances de Magento sont un domaine sur lequel les utilisateurs se plaignent régulièrement. C’est vrai que peu de choses sont vraies, mais il existe bien sûr une multitude de façons d’améliorer les performances. Aujourd'hui, nous allons examiner des moyens d'améliorer considérablement les performances de votre installation Magento. Je sais que cela semble intéressant et que vous êtes impatient de commencer.

Note rapide avant de commencer cependant. La majorité des améliorations et / ou optimisations mentionnées ici ne seront que celles-ci: mentions. Vous devriez probablement chercher sur Google pour l'implémentation car l'implémentation elle-même nécessitera un tutoriel de taille raisonnable en soi. Avec cela en route, commençons!


Choisissez la bonne plateforme

C'est l'aspect le plus critique de votre installation de Magento. Magento peut être exécuté sur un hôte partagé, mais attention, les performances ne seront pas optimales. Magento nécessite vraiment plus de puissance qu'un hôte partagé à la pointe de la technologie ne peut en fournir, et cela se verra vraiment lorsque vous le ferez fonctionner sur un.

Un VPS ou un serveur dédié est l’idéal pour Magento. Et rappelez-vous de ne pas lésiner sur la mémoire, car vous en aurez besoin. Beaucoup.


Activer la mise en cache

Laisser Magento mettre en cache certaines parties de sa base de code est l’une des rares choses à faire pour optimiser une installation. Vous n'avez pas besoin d'activer la mise en cache pour tout, mais je suggérerais des dispositions et de bloquer la sortie HTML comme éléments essentiels. Avec la mise en cache activée, en fonction de la taille du site, vous pouvez vous attendre à une réduction considérable de votre temps de chargement..

N'oubliez pas que vous devrez désactiver la mise en cache lors du développement. Si vous apportez des modifications à votre code et que celui-ci échoue, la mise en cache en est la cause. Un tel point évident, mais il a été la cause de tant de mèches de cheveux au cours du développement.


Turbocharger votre cache

Une fois que vous avez activé la mise en cache, vous pouvez maintenant aller plus loin. Magento met en cache les informations à l'aide d'un système de stockage basé sur fichiers. Bien que ce soit le moyen le plus fiable, il y a souvent des moments où vous voulez de la vitesse. Dans ces cas, vous devriez envisager de déployer un système de mise en cache basé sur la mémoire..

Il y a un certain nombre d'options disponibles et les gens ont eu beaucoup de succès avec elles. eAccelerator est mon outil de choix ces jours-ci. Rappelez-vous simplement de le configurer avec suffisamment de mémoire, sinon vous devrez peut-être purger les données pendant les moments les plus inopportuns..


php.ini Tweaks

Si vous êtes sur un serveur VPS ou dédié, envisagez de désactiver les extensions PHP non essentielles. Magento n’a besoin que de quelques-uns comme PDO_MySQL, alors n’hésitez pas à en désactiver les autres..

De plus, il y a 2 réglages qui donneront de meilleures performances.

Par défaut, PHP est configuré pour utiliser une quantité de mémoire absurdement basse. Vous aurez besoin d'augmenter cela. Vous pouvez le faire en ajoutant la ligne suivante au fichier de configuration:

 php_value memory_limit 512M

La seconde est en peaufinant le realpath_cache valeur à si.

 realpath_cache_size = 1 M realpath_cache_ttl = 86400

Apache Module Tweaks

Il s’agit d’un sujet plus général que spécifique à Magento, je vais donc être bref. Vous devez activer et / ou configurer plusieurs modules Apache pour améliorer les performances de votre magasin..

Le premier est mod_deflate. Cela permet de compresser considérablement la sortie du serveur, améliorant ainsi les performances. Certainement un module qui doit être activé.

Deuxièmement, examinez mod_expires. Ce module permet au navigateur de mettre en cache des ressources spécifiques pendant une période donnée afin que les visiteurs revenant auront une expérience plus vivante..

et enfin, KeepAlives. Cela permet des connexions persistantes en créant des sessions à vie longue permettant le routage de plusieurs demandes via la même connexion TCP. Cela aide lorsque vous avez un certain nombre de petits actifs dans votre page..


Reconstruisez vos index

N'oubliez pas de reconstruire périodiquement les index des tables. C’est un point essentiel qui se traduira par une amélioration notable des performances de votre magasin..

Rappelez-vous que la reconstruction des index est une affaire très coûteuse en termes de ressources et devrait être effectuée en dehors des heures de travail. Faire cela même pendant une activité modérée de votre magasin dégradera considérablement les performances et la réactivité du magasin..


Ajouter un accélérateur PHP

L’interprète PHP doit lire chaque fichier sur le disque et le compiler à chaque requête, ce qui est extrêmement gourmand en ressources processeur si l’on considère la taille de Magento. Dans ces cas, un accélérateur PHP comme APC ou eAccelerator est fortement recommandé.

Des outils comme ceux-ci améliorent considérablement les performances de votre code PHP en le mettant en cache dans un code d'octet intermédiaire. Il est servi au lieu de devoir demander à l'interpréteur de le compiler à chaque fois..


Partition en mémoire pour réduire les cycles d'E / S

Ceci est une extension du point noté légèrement ci-dessus. Magento stocke de nombreuses informations [pas seulement la base de données] dans le disque dur du serveur qui, comme vous le savez, est le maillon le plus lent de la chaîne. Cela inclut les caches, les informations de session, etc. Si vous souhaitez améliorer les performances dans ce domaine, le meilleur moyen d'aller de l'avant est d'implémenter un système de fichiers basé sur la mémoire pour vous assurer que toutes ces données sont stockées en mémoire au lieu d'appels coûteux sur le disque dur..

Comme nous n'avons pas la place ici, je vais simplement vous indiquer la bonne direction. Ce que vous devez faire est de configurer une partition tmpfs qui prend en charge vos répertoires de session et de cache. Ceux-ci peuvent être trouvés sous /var/www/domain.com/var/sessions/ et /var/www/domain.com/var/cache/ respectivement.


Activer l'extrémité avant plate

Le module de catalogue de front plat crée des tables de base de données supplémentaires pour stocker les données dans un format plat / linéaire. Ce module est disponible pour les données de catégorie et de produit. N'hésitez donc pas à l'activer indépendamment, selon les besoins de votre cas d'utilisation..

L'activation de ce module n'est recommandée que pour les grands magasins. Les magasins avec un petit catalogue doivent absolument rester à l'écart, car cette option risque de ne pas fournir une surpuissance des performances suffisante pour en garantir l'utilisation et pourrait en fait diminuer les performances. Prenez une décision soigneusement réfléchie ici.


Séparer l'arrière

Le back-end de Magento consomme beaucoup plus de ressources que le front-end, car il doit gérer beaucoup plus d'informations. Et une fois que votre magasin a atteint un certain seuil en ce qui concerne le nombre de produits, disons 5 000, il commence réellement à taxer le serveur..

Avoir un serveur d’administration dédié peut aider le panneau d’administration à obtenir les cycles de processeur dont il a besoin, tout en nuisant aux performances du reste du site..


Tweak Block Usage

Le thème par défaut de Magento est un bon point de départ, mais n’est pas vraiment le plus efficace. Laissez-moi élaborer. Le thème par défaut est conçu pour présenter toutes les fonctionnalités de Magento et, par conséquent, naturellement, regroupe toutes les fonctionnalités exceptionnelles. Rappelez-vous que Magento construit une page en analysant la mise en page que nous spécifions et que le temps de génération de la page est donc directement lié au nombre de blocs que vous utilisez dans une page..

Ainsi, lors de la création de votre propre thème, évitez les dispositions inutilement complexes, simplifiez et / ou combinez les plus petits blocs afin de réduire les cycles de traitement nécessaires au rendu du code de la page..


Ajouter intelligemment CSS / JS

Magento a mis en place un système élégant pour inclure / exclure par programme des feuilles de style et des fichiers JavaScript dans des thèmes. Beaucoup d'auteurs de thèmes semblent contourner complètement ce système en incluant simplement ces éléments manuellement dans les modèles HTML. C'est faux.

La bonne façon d'inclure ces actifs est indiquée ci-dessous:

    

En utilisant le code ci-dessus dans les fichiers de mise en page, Magento combine les fichiers JS en un seul fichier et les envoie au navigateur en une seule requête..


Servir efficacement le contenu statique

Les règles d'optimisation de sites ou d'applications normaux s'appliquent également ici. Les navigateurs limitent généralement le nombre de téléchargements d'un domaine à 2-5, ce qui est très limité lorsque vous chargez un thème multimédia riche avec un certain nombre de petits actifs. Il existe un certain nombre de moyens faciles de sortir de cette

Le premier et le plus facile est quelque chose que vous connaissez tous: les sprites. En utilisant des sprites, vous pouvez réduire le nombre de demandes simultanées générées par votre thème..

Cette approche peut ne pas fonctionner dans tous les cas. Que se passe-t-il si votre thème contient de nombreux scripts, vidéos et autres astuces? Celles-ci ne devraient pas bloquer le chargement du reste de la page. Dans ce cas, créez simplement un sous-domaine pour les actifs statiques et dirigez votre installation Magento vers la ressource..


Équilibrer votre journalisation

La journalisation est essentielle mais elle est également coûteuse, car il faudra écrire sur le disque. Magento, en général, est très bavard en ce qui concerne la journalisation et bientôt vous serez plongés dans des fichiers de log dont vous n’aurez plus besoin..

La solution ici est de désactiver tout sauf les éléments essentiels. Avez-vous activé la journalisation des requêtes lentes sur votre serveur de production? Éteignez-le maintenant! Les requêtes lentes doivent être examinées et corrigées bien avant le déploiement. Il a sa place dans un serveur de développement, pas un serveur de production.


Garder tout à jour

Ceci est un autre conseil essentiel que beaucoup de gens oublient. Qu'il s'agisse de la version de PHP, de MySQL ou de Magento lui-même, les versions les plus récentes offrent une vitesse et une stabilité considérables que vous ne pouvez pas vous permettre de manquer..

Particulièrement dans le cas de Magento, même chaque mini-mise à jour corrige un certain nombre de problèmes de performances et de corrections de bogues. Aussi longtemps que la branche est libellée stable, effectuez une mise à niveau!


Compilateur Magento

Magento a un module de compilation spiffy qui promet une accélération allant de 25% à 50%. Comme son nom l'indique, ce module compile tous les fichiers Magento et conduit ainsi à de meilleures performances..

Notez que ce module est toujours en version bêta et ne prend en charge que les versions 1.3x. Cela devrait être prêt bientôt alors gardez ce point à l'esprit aussi.


Utilisez Fooman Speedster

Fooman Speedster est une extension puissante qui peut donner à votre magasin de belles performances. Il fonctionne en combinant, réduisant, compressant et mettant en cache vos fichiers JavaScript et CSS. De plus, il active également la compression GZIP pour le reste de la boutique..

Globalement, cela signifie que moins de données sont envoyées et moins de demandes, ce qui est gagnant, peu importe la façon dont vous les voyez. Cela fonctionne avec toutes les versions majeures de Magento et est certainement un must pour tout magasin.


Optimiser votre base de données

Une autre de ces choses que vous devriez faire périodiquement pour améliorer les performances. Vous aurez besoin de réparer votre base de données, si nécessaire, puis de l’optimiser. Vous pouvez le faire via vos hôtes CPanel, phpMyAdmin ou simplement des commandes shell. Voici un lien rapide qui vous guidera à travers le processus en utilisant phpMyAdmin.


Le dernier mot

Et nous avons fini! Aujourd'hui, nous avons examiné plusieurs moyens d'améliorer les performances de Magento. J'espère que cela vous a été utile et que vous l'avez trouvé intéressant. Je suis sûr que j'ai manqué un certain nombre de points ici, alors n'hésitez pas à commenter dans les commentaires avec les astuces que vous utilisez.

Des questions? De belles choses à dire? Des reproches? Hit la section des commentaires et laissez-moi un commentaire. Bonne codage!