Bonjour,
J'ai trouvé cet article fort intéressant sur le forum osCommerce anglophone. J'ai appliqué les recommandations qu'il contient et les performances de ma boutique se sont de ce fait considérablement améliorées.
D'où l'idée de le partager avec la communauté francophone. Certains d'entre vous l'ont déjà certainement lu, mais je pense en partiulier à ceux qui ne maîtrisent pas la langue de Shakespeare.
L'auteur de cet article est Bobby Easland, alias Chemo. Il est l'auteur de nombreuses contributions. Vous pouvez trouver http://forums.oscommerce.com/index.php?showtopic=144736.
Bonne lecture !
QUOTE | ||||||
Comment optimiser la vitesse/performance de votre boutique – par Chemo Maintenant que votre boutique est opérationnelle et dotée de produits, il est temps de porter votre attention sur les performances de votre site. D’une façon générale, les clients aiment les pages se chargeant rapidement. S’ils doivent attendre durant le chargement, le taux de conversion des visites en achats diminuera. Voici donc quelques éléments de base, mais essentiels, de l’optimisation des performances. IMAGES De loin le coupable principal du ralentissement du chargement des pages ! Une réponse simple est d’installer http://www.oscommerce.com/community/contributions,1484. Il est important d’utiliser un générateur mettant en cache les images plutôt que de les générer à la volée, ceci dégradant terriblement les performances. Les effets peuvent ne pas être sensibles sur une boutique recevant 1 ou 2 visiteurs à l’heure, mais si la fréquentation est significative, vous devez absolument mettre vos images en cache. Après tout, vous avez consacré des ressources du serveur à la création de vignettes, alors pourquoi ne pas les stocker pour les réutiliser plus tard au lieu de les recréer ? CONTRIBUTIONS Installez SEULEMENT celles que vous devez utiliser et SEULEMENT celles qui vont faire gagner du temps ou ajouter de la valeur au processus d’achat. Les contributions répondant à ces critères dépendent de votre type de boutique et des produits que vous vendez. Toute contribution est consommatrice de ressource, que ce soit du code PHP pur ou bien des requêtes MySQL (ou les deux). Règle d’or : N’INSTALLEZ QUE LE NOMBRE MINIMUM DE CONTRIBUTIONS. Trop souvent, un propriétaire de magasin devient fou de contributions et installe tous les gadgets possibles. Ceci fait considérablement gonfler la base de code et les performances en souffrent... l'intention est d’améliorer le processus d'achat mais l'effet est de le DÉGRADER en raison de la lenteur de chargement. ENLEVEZ LES FONCTIONS INUTILISÉES Plusieurs fonctions de l’OsCommerce de base sont ou ne sont pas utilisées, dont le retrait améliorerait les performances. Par exemple : les bannières, l’affichage en pied de page du "nombre de requêtes depuis", qui est en ligne, etc. Si vous n’utilisez pas ces fonctions, enlevez (commentez) le code. L’élimination de ces fonctions a un autre avantage : il ne sollicite pas les fonctions de cache de requêtes MySQL. Lors de chaque insert, le cache est vidé. Bien entendu, cela suppose aussi de stocker les sessions dans le système de fichiers ! STS - Simple Template System Je veux mettre un accent particulier sur cette contribution, car c’est l’un des pires consommateurs de requêtes, et c’est aussi l’un des systèmes de template pour osCommerce les plus populaires. Si vous avez un nombre de catégories significatif dans votre boutique, cette contribution va tuer les performances de votre site. Elle réalise un balayage complet de table lors de chaque demande de chargement de page. Si vous avez plus d’une centaine de catégories, le temps de chargement augmentera de 200 à 300% suivant les caractéristiques du serveur. Bref, si vous voulez de la vitesse, n’utilisez pas de système de template… Apprenez à modifier cette application monolithique qu’est osCommerce. SESSIONS Si vous stockez les sessions dans la base de données, il vous faut ajouter un index primaire multi-colonnes sur les colonnes "sesskey" et "expiration". Cela prendra davantage d'espace physique mais ce sera beaucoup plus rapide. CACHE – Stockage du Code et mise en Cache des Pages La possibilité de mettre des données en cache est déterminante pour les performances... particulièrement si vous avez de nombreuses catégories, produits et/ou commandes. Je recommande de créer un répertoir AU-DESSUS de la racine accessible publiquement et de lui donner les permissions en lecture/écriture pour le serveur. Le fait de placer ce cache AU-DESSUS de la racine du site empêche l'accès de hackers avec leur explorateur. Réglez vos paramètres de cette façon et ne stockez pas le cache dans le répertoire "/tmp", cela évitera des riques inutiles. Une fois ces réglages effectués, ACTIVEZ LE CACHE. L'effet est particulièrement sensible sur la box "catégories" ! http://www.oscommerce.com/community/contributions,2561 a été créée pour les boutiques ayant tant de contributions installées qu'il est pratiquement impossible d'optimiser le code. La bonne solution est de ne pas surcharger la boutique de contributions non nécessaires...Mais si vous êtes dans ce cas, Page Cache est fait pour vous. J'utilise Page Cache en dernier ressort, pas comme un premier choix. COMPACTEZ VOS PAGES HTML La plupart connaissent la compression de pages via GZIP. Le réglage optimal pour la vitesse est la compression de niveau 1; les niveaux de compression supérieurs ne réduiront pas de façon significative la taille des pages. Quoi qu'il en soit, il est bon de compresser physiquement les données à Gzipper en enlevant les espaces et les sauts de lignes superflus. Voici la fonction que j'utilise :
Bien sûr, ce n'est qu'un point de départ et vous allez devoir imaginer comment le combiner avec GZIP. Précisions : Dans includes/functions/gzip_compression.php : 1) Insérer la fonction ci-dessus. 2) Remplacer
Par :
La compression physique des pages avec GZIP réduira le code HTML en sortie de près de 60 à 75% et améliorera nettement les performances, spécialement avec les connexions par modem. OPTIMISATION DU CODE ET DES REQUÊTES J'ai voulu aborder ce point en dernier car c'est celui pour lequel les cas de figures sont les plus variés.Cela est dû au fait que chaque boutique est différente. Elles comencent toutes avec la même base de code, mais chacun installe des contributions différentes. Le résultat en est une grande diversité quant au code à optimiser. Un bon point de départ est d'installer http://www.oscommerce.com/community/contributions,2575. Cela vous permettra de voir les requêtes exécutées pour chaque page, et d'identifier facilement celles qui sont redondantes ou trop longues à exécuter. Une fois que vous avez mis le doigt sur ce qui doit êtr amélioré, c'est plus facile de le faire…...Ne faites jamais AUCUNE optimisation aveugle. Modifiez TOUJOURS le code dans un but précis. C'est du bon sens ? Vous seriez surpris... Encore une fois, je n'aborderai pas les optimisations relatives à des contributions spécifiques, mais seulement celles qui sont communes à toutes les boutiques osC. http://www.oscommerce.com/community/contributions,2417 en est une. Elle remplace la classe de taxes MS2 d'origine par la nouvelle classe de taxes de la MS3, qui est beaucoup plus efficace, et moins gourmande en requêtes par page. LA REQUÊTE DE TAXE EST EXÉCUTÉE À CHAQUE AFFICHAGE DE PRIX, MÊME SI L'AFFICHAGE DE LA TVA EST DÉSACTIVÉ. C'est important de le savoir, car la plupart pensent qu'en désactivant l'option dans le panneau d'administration, il n'y aura pas de requête de taxe... C'est faux et, MÊME SI L'OPTION EST DÉSACTIVÉE, LA REQUÊTE DE TAXE SERA EXÉCUTÉE. Pourquoi est-ce important ? Parce que cette requête est l'une des plus gourmandes en ressources serveur ! En 2 minutes d'installation, cette nouvelle classe de taxes va accroître considérablement les performances. Le module also_purchased est un puissant outil d'aide à la vente bien qu'il soit de loin le plus gros consommateur de requêtes dans une application osCommerce. C'est particulièrement vrai pour les boutiques dotées d'un nombre significatif de produits et de commandes. J'ai déjà vu ce module mettre à genoux un serveur biprocesseur 2.8 Ghz avec 1Go de RAM...en exécutant seulement 1 requête. À mesure que vous accumulez les commandes, vous sentirez les produits pour lesquels la vente croisée serait idéale. Aussi, il serait bon d'installer http://www.oscommerce.com/community/contributions,1415. C'est un peu plus lourd à maintenir mais l'accroissement de la performance qui en résulte en vaut la peine. À chaque demande de page, le contenu de la table est chargé. L'implication de cela, c'est qu'à chaque demande de page, le serveur doit scanner la table pour générer les données...ce qui, en fonction des contributions installées, ajoutera de la charge à chaque chargement de page. Pour remédier à cela, il y a une excellente contribution : http://www.oscommerce.com/community/contributions,1862. Cette contribution met les données en cache et élimine les requêtes dans la base de données...réservant ainsi le balayage de table aux cas où la page n'est pas présente en cache. Cette contribution est FORTEMENT recommandée. Ce post ne prétend pas être un guide absolu de l'optimisation d'une boutique osCommerce mais vous donnera, j'espère, quelques repères pour savoir où faire porter vos efforts en priorité. |
une note a propos de STS template :
QUOTE |
Je veux mettre un accent particulier sur cette contribution, car c’est l’un des pires consommateurs de requêtes, et c’est aussi l’un des systèmes de template pour osCommerce les plus populaires. Si vous avez un nombre de catégories significatif dans votre boutique, cette contribution va tuer les performances de votre site. Elle réalise un balayage complet de table lors de chaque demande de chargement de page. Si vous avez plus d’une centaine de catégories, le temps de chargement augmentera de 200 à 300% suivant les caractéristiques du serveur. |
Salut man machine! Que dois t'on supprimer dans sts_user_code.php
Il faut supprimer exactement le code que tu as posté. En fait cela revient à avoir sts_user_code.php vide (si aucun code personel n'a été ajouté).
A noter que la compression GZip ne fonctionne pas encore avec STS (pour le moment la dernière version publiée étant 4.3.2). Je vais essayer de trouver un moment pour faire un nouveau service pack...
- Rigadin
Voilà, j'ai pris un peu de temps pour zipper mes fichiers et STS se dote d'une nouvelle révision compatible avec la compression GZip.
- Rigadin
Quadricolor
en appliquant un index sur sesskey, voilà ce dont m'informe phpMyadmin :
La colonne `sesskey` ne devrait pas faire partie à la fois d'une clé primaire et d'une clé index
Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)