déc 12

Comme nous allons parler essentiellement de performances et d’optimisation, il faut que nous convenions d’un vocabulaire commun et d’unité de mesure commune sinon cela va compliquer le dialogue et perturber les comparaisons. Je ne crois pas qu’il y ait réellement de normes en vigueur alors nous avons choisis, à plusieurs, d’utiliser le référentiel suivant :

Sessions Actives (SA) : nombre de personnes utilisant activement des ressources du serveur. Elles sont connectées et ont appuyées très récemment sur un bouton/lien/image, ce qui impose au serveur un traitement pour lui répondre, ou bien elles viennent de se connecter sur le site et attendent en retour la homepage.

Nombre Maximal de Sessions Actives (NMSA) :
Afin que le trafic reste fluide et que l’expérience de l’utilisateur soit correcte, on estime couramment que 5 secondes de temps de réponse constitue la borne haute de la zone de confort, un maximum. Le nombre de sessions actives doit donc toujours imposer au maximum 5s ou moins de temps de chargement à l’utilisateur.

Le nombre maximum de sessions actives s’entend donc comme étant « la limite du nombre de sessions actives à un même moment pour que chacune d’entre elle reçoive ses réponses en moins de 5 secondes ».

Sessions connectées (SC): Ce sont des sessions actives, telles que Magento les qualifie. Il garde le contexte de session de l’utilisateur afin de pouvoir lui apporter la réponse qu’il souhaite ou lui permettre de finaliser son achat. Dans cet état, une session connectée peut être inactive (l’utilisateur lit ce qu’il a reçu ou il ne regarde plus le site, mais il ne sollicite pas le serveur) ou active (équivalent d’une session active, il sollicite le serveur).

Visiteurs par jour : Personne ayant effectué session complète de surf entre minuit J-1 et minuit J.

Pages vues par jour : Nombre de pages vues de minuit J-1 à minuit J.

Voici quelques feedbacks, basés sur ce vocabulaire :

- L’activation du cache Zend fournit un gain de NMSA de 100% en doublant le nombre de NMSA (et donc celui de SA et de SC).

-> Le nombre de NMSA est passé, dans notre cas, de 25 à 50.

- L’ajout d’un index sur les customer_id on sales_order (non présent en 1.0.xxx) aide beaucoup sur les temps d’accès du backoffice. division par 4 du temps de chargement du BO en magento 1.0.xxx

- L’Opcode Cache APC founit un gain d’environ 40% de NMSA, nous testons actuellement d’autres opcode cache comme Eaccelerator, Xcache, ioncube, turck et les trois mod php : mod_php, php_cgi, php_fastcgi afin de déterminer la meilleure combinaison. Un autre serveur httpd qu’Apache sera éventuellement envisagé.

- Après plusieurs tests, le réglage optimal du système de cache des requêtes mysql semble être 128 Mo pour le cas du vieux campeur. Ce montant optimal peut bien évidemment varier en fonction de la base produit/client mais un montant trop élevé semble faire un tradeoff défavorable au moment de la purge du cache. On gagne moins en performances que l’on ne perd en nettoyage du cache (GC). Donc une valeur comprise entre 64 pour un site avec une petite DB et 256 pour un site avec une très grosse DB semble bon.

- La homepage et le 404 en static est une optimisation simple et efficace puisque l’on utilise pas php pour générer une page qui est toujours la même. Ce n’est possible que si la homepage est un minmum statique mais de toute façon le gain est important, même si on la génère régulièrement parcequ’elle change. C’est la seule page qui est chargée dans 99% des visites, c’est donc un point d’optimisation central.

- La séparation du Back Office qui est très couteux en Magento n’apporte finalement que peut de gain puisque l’essentiel du travail pour le BO est fournit par la base de données et non par PHP ou Apache.

écrit par Philippe Humeau \\ tags: ,


Poster une réponse