juin 23

Mage_compiler : une bonne nouvelle à deux titres


Même si les débuts de Mage_compiler sont discrêts, cette nouvelle option est un bon signal de plus :

1°) Varien signe ici un mouvement supplémentaire dans le sens de l’optimisation des performances et depuis la 1.1.6, toutes les versions prennent cette direction. On arrive à un point où le gain cumulé approche les 35 à 70% selon les sites.

Magento est très largement plus fonctionnel et avancé qu’Os commerce, d’où la nécessité d’avoir plus de puissance pour le suivre. Rien de si illogique à cela. En version 1.0.0 on avait un facteur ~6, on en est à un facteur ~2/3. En huit mois, chapeau bas. La bonne nouvelle c’est que l’on gagne en performance, de manière continue et que ce chemin est bien un point majeur pour Varien.

2°) C’est une solution qui va permettre aux serveurs « standards » et aux petites infrastructures de gagner en performance de manière sensible.

Comment ca marche


Vous pouvez l’activer dans le back office en version 1.3.2.1 ou supérieur. Une fois ceci fait, Mage_compiler va en fait concaténer les fichiers liés à Magento en deux librairies et ainsi soulager considérablement les I/O (Input/Output) sur les disques des serveurs.

En effet, l’organisation du code en librairie et en fichiers facilite la maintenance mais complique la vie des machines. Charger un fichier commence par l’ouverture d’un handler, la sequence de lecture, potentiellement la fermeture de ce handler et ceci mutiplié par des centaines voir des milliers de fichiers. Toute économie sur ce point est donc sensible.

Mage_compiler « compile » enfin plus exactement regroupe (merge) ces nombreux fichiers afin de soulager le système de tous ces chargements.

Si l’on a une machine avec peu de mémoire et/ou des disques peu rapides, le gain sera très sensible, peut être jusqu’à 30% voir 40% car les fichiers ne peuvent rester en mémoire avec peu de RAM, il faut donc souvent les charger. Si le disque est lent, cette opération est couteuse.

Si votre infrastructure était déjà doté de serveur avec beaucoup de RAM qui ne décharge pour ainsi dire jamais des fichiers, le gain sera faible, de l’ordre de 5% maximum. De la même façon si vous avez des rolls de disques durs en 15 000 tours / minutes en SAS, il y a peu de chance que votre gain dépasse les 10%, même avec peu de RAM.

Les grands gagnants de cette version seront donc les serveurs bas ou moyen de gamme, soit dotés de peu de RAM (moins de 2 Go) soit dotés de disques lents (SATA en 7200 T/m) voir les deux.

J’espère avoir le temps prochainement de vous proposer des valeurs plus concrêtes en termes de gain de performances, après quelques benchs.

écrit par Philippe Humeau \\ tags: , , ,


5 commentaires sur “Qu’attendre de Mage_Compiler ?”

  1. 1. Damien Dit :

    C’est assez original comme approche. Les gains annoncés dans ce billet sont il avec ou sans accélérateur PHP (type APC, eAccelerator et cie) ?

  2. 2. Philippe Humeau Dit :

    Well, APC gère de l’optimisation de la stack d’opcode PHP. En gros il réorganise les commandes à effectuer et optimise leur traitement. APC soulage donc essentiellement le CPU. Mage_compiler lui permet de concaténer les fichiers et donc de diminuer les I/O sur les supports mémoire.

    Les gains devraient donc, en toute logique, être cumulatifs.

    Il est possible aussi qu’il y ait un effet synergique entre les deux par la réorganisation des librairies qui pourrait bénéficier à APC ou Zend Page Cache, pourquoi pas. J’en doute vu les mécanimes en jeu mais ca demande à être tester je pense.

  3. 3. Gourvil Sylvain Dit :

    Merci encore une fois pour ce post concis et intéressant.
    Je n’avais pas encore eu le temps de me pencher sur ce core_compiler et cette présentation me fait gagner un temps fou.

    Merci

  4. 4. olixelle Dit :

    d’un point de vue théorique, magento compiler et les caches d’opcode sont censés etre complémentaires…
    a confirmer avec des benchs ;)

  5. 5. » Revue de presse : Personnaliser et optimiser Magento, CGV. - Magavenue : Le Blog du ecommerce Open Source (Magento, Prestashop…) Dit :

    [...] Mage_compiler : Wikigento nous explique ici les avantages à utiliser la nouvelle option Mage_compiler de Magento [...]

Poster une réponse