
Optimisations serveur pour Magento
Categories: Aucun | Tags: Hébergement, Magento, Optimisation
Article mis à jour le 5 septembre 2012
Magento, contrairement à d’autres applications en PHP, a besoin d’un minimum d’optimisations côté serveur pour le faire tourner dans de bonnes conditions. En effet dès que vous commencez à avoir un trafic conséquent ou plusieurs Magento qui tournent sur le même serveur gare à la charge !
APC
Alternative PHP Cache est un « gestionnaire de cache d’opcode » qui effectue une sorte de précompilation des scripts PHP pour gagner du temps à l‘éxécution. Il peut également prendre en charge le cache de vos applications, dont Magento.
Facile à installer, il est malheureusement mal configuré par défaut, du moins trop faiblement.
Configuration que j’utilise, d’après cet article , à mettre à la fin de php.ini :
apc.shm_size=256 apc.num_files_hint=10000 apc.user_entries_hint=10000 apc.max_file_size=5M apc.stat=0
Pour résumer, le premier paramètre est le plus important: c’est la quantité de RAM maximum alloué à APC pour faire son boulot. Il est par défaut à 80 Mo ce qui est largement insuffisant pour Magento étant donné la quantité impressionnante de fichiers (1 fichier = 1 entrée de cache).
Le dernier mérite votre attention: activé (à 1), il va vérifier la date de modification de chaque fichier pour mettre à jour l’entrée de cache correspondante si nécessaire. Désactivé il se passe de cette vérification ce qui fait gagner en performance. Je vous conseille de le désactiver sur un serveur de production et de l’activer sur un serveur de développement, sinon vous aurez à vider le cache APC à chaque modification de vos fichiers.
MySQL
Les tables Magento utilisant le moteur de stockage InnoDB, il faut veiller à sa bonne configuration. Le paramètre à rajouter ou modifier dans my.cnf est ici innodb_log_file_size qui est par défaut trop faible. Attention je vous recommande de faire attention à vos opérations, le changement de ce paramètre nécessite notamment de supprimer des fichiers d’historique.
Modules apache
Comme sur tout serveur digne de ce nom n’oubliez pas les incontournables mod_deflate, mod_headers et mod_expires qui permettent de compresser les données envoyées ainsi que gérer le cache client.
Backoffice magento
Cache
Activez les caches dans Système > Gestion du cache. Si vous avez installé APC exploitez le à fond en l’utilisant également pour le cache applicatif en rajoutant ceci dans le nœud <global> de votre local.xml:
<cache> <backend>apc</backend> <prefix>CLE_</prefix> </cache>
Où « CLE » est une chaine unique pour chaque site tournant sour magento, le nom du site par exemple.
Flat catalog
Activez le « Flat catalog » dans Système > Configuration > Catalogue > Frontend > Catalogue à plat, puis vous aurez besoin de ré-indexer les données dans Système > Index management. Ce catalogue à plat est une version optimisée des données pour la partie font-end
Compilation
Activez la compilation dans Système > Outils > Compilation. Cela permet de regrouper les fichiers de librairie et d‘éviter ainsi trop de consultation du disque.
Au final
Bien sûr tout ceci est loin d‘être complet, mais ces optimisations ont le mérite de prendre assez peu de temps et peuvent s’avérer vite indispensables. Elles représentent à mon sens le meilleur rapport performance gagné/temps passé, temps si précieux dans les petites agences qui ont rarement à leur disposition un administrateur système à temps plein.

Rédigé le 23/05/2012 pour Agence Web COTEO