Récemment
-
Des modules et des hacks - liste non exhaustive des modules présentant un risque
Discussion générale13 -
Patch de sécurité thèmes warehouse / iqit (Versions 1.5 & 1.6)
Discussion générale1 -
Copieurs-Colleurs
Discussion générale2 -
Créer un contrôleur front (indépendant)
Tutoriels1 -
Fourre-tout de trucs et astuces
Tutoriels4 -
[1.3] Implanter des classes overrides
Tutoriels1 -
[1.6.0.5 - 1.6.1.18] Fatal error lors de la suppression d'image du themeconfigurator
BUG connus1 -
Comment offrir frais de port à partir d'un certain montant MAIS avec transport facturé au poids ?
Discussion générale4 -
[1.7.x] Impossible de gérer le menu du BO, même en SuperAdmin
BUG connus1 -
[1.5.x],[1.6.x],[1.7.x] Pas de redirection canonical pour page manufacturer & supplier
BUG connus4 -
[1.6.0.5]+ Reference error: $ is undefined dans le BackOffice
BUG connus2 -
[1.5.5.0]+ Ajax error lors de ma mise à jour des ranges transporteur (AdminCarrierWizard)
BUG connus2 -
[ganalytics-2.0.0] Le module peut provoquer une erreur ajax lors de l'ajout au panier
BUG connus1 -
[1.6.x.x]+ BO - Sélection de langue pour contrôle orthographique impossible dans tinyMCE
BUG connus1 -
[1.7.x] Erreur 500 lors de la collecte des statistiques - pas de statistiques de visites
BUG connus1 -
Supprimer le ID de l'url, et afficher la catégorie dans l'url, est-ce réellement utile ?
Tutoriels2 -
[1.6.1.0]+ Duplicate entry XXXXXX for key id_product_2 - INSERT INTO ps_specific_price - BackOffice, créer/éditer un produit (SpecificPriceRule.php)
BUG connus1 -
[1.6.1.0]+ Too many tables, MySQL can only use 61 tables in a join - Backoffice, créer/éditer un produit (SpecificPriceRule.php)
BUG connus1 -
[1.5.0.17]+ Redirection vers http forcée suite à redirection shop domain (en https)
BUG connus2 -
[1.5.0.17+] Erreur de protocole lors de la génération de pdf
BUG connus1
Opcache et Prestashop comment le configurer
-
Bonjour,
Comment optimiser la configuration d'opcache pour prestashop ?
Merci
-
Le réglage par défaut de l'opcache (64M de mémoire et 4M de clé) est déjà relativement optimisé pour une Prestashop.
Lorsqu'il y a beaucoup de produits, catégories, modules il peut-être judicieux pour 1 Prestashop d'augmenter:
opcache.memory_consumption = XXX (XXX est une nombre en méga) 512 ça donne pas mal d'espace
opcache.interned_strings_buffer = YYY (YYY en méga est la zone réservé de XXX pour les clés 32 c'est énorme)
opcache.max_accelerated_files = ZZZ (par défaut 2000, c'est le nombre de fichier maximum caché 10000 c'est déja gigantesque)
opcache.revalidate_freq = T (en s, par défaut 2s que l'on peut facilement mettre à 5 ou 10s)Attention dans le cas php-cgi mais aussi pfp-fm dans une moindre mesure, il existe un opcache par process. Donc il faut s'assurer que les php-cgi vivent assez longtemps pour avoir l'occasion de faire leur office et que si l'on admet 50 process, celà signifie 50 opcache différent.
Dans tous les cas les ralentissements de prestashop n'ont pas vraiment pour cause une lenteur du php, mais une manière de coder "risible" excutant des boucles inutiles à outrances et un codage de SQL digne d'un 3eme année de maternelle. Je dis cela car il ne faut pas s'attendre a des miracles de performances au travers de l'opcache (
-
Déjà il faut savoir que ce cache ne va pas mettre des données en stock mais les fichiers php en binaire; et dans prestashop il y en a des fichiers php et encore plus avec le cache smarty.
Donc déjà il va falloir déterminer combien de fichier il faut mettre en cache, je vous conseille donc de faire la commande suivante après un temps important sans avoir vidé le cache de prestashop :
<span style="text-decoration: line-through;">find . -type f -print | grep .php | wc -l</span> <span style="line-height:1.6">find . -type f -name '*.php' | wc -l</span><span style="line-height:1.6"> ( </span>doekia<span style="line-height:1.6"> ) </span>
Cette commande va vous retourner le nombre de fichier php pour ma part je suis à + 40 000.
Ceci va nous permettre de configurer la variable suivante qui doit être un nombre premier ( liste des nombre premier )
opcache.max_accelerated_file 41777; // Exemple pour mon site
Il faut ensuite modifier :
opcache.revalidate_freq 0; // Nombre de seconde avant la revalidation du cache
opcache.validate_timestamps 0; // Permet de ne pas vérifier le timestamps des fichier ( Production seulement )
Ensuite il va falloir travailler sur la mémoire qu'on va laisser à opcache pour ça vous pouvez télécharger ici un script qui vous donnera des informations sur la mémoire utilisée par opcache.
Avec ce script vous allez pouvoir déterminer combien mémoire allouer à opcache les deux paramètres sont :
**opcache.memory_consumption 64; **// Valeur par défaut en M je l'ai personnellement réglé à 256
**opcache.interned_strings_buffer 8; **// Valeur par défaut en M je l'ai personnellement réglé à 32Voilà après avoir configuré opcache avec ces variables, je sens une amélioration sur mon site, bon ce n'est pas non plus deux fois plus rapide comme dit ici mais il y a bien une amélioration.
Naturellement vous ne pourrez régler ces paramètres qu'avec votre propre serveur, ce qui me fait dire que les tests de l'article ci-dessus ont été fait sur une boutique avec 5 articles et que sur la page d'accueil et avec pas beaucoup de fichiers.
Un bon article pour comprendre tous les paramètres.
-
t'embêtes pas avec le nombre premier, opcache ajustera cette valeur au nombre premier directement supérieur au nombre que tu saisis. De par la doc on ne doit pas saisir de nombre supérieur à 100'000.
find . -type f -name '*.php' | wc -l c'est plus mieux
je suis personellement contre opcache.revalidate_freq et opcache.validate_timestamps à 0. Cela mène à beaucoup de complications en cas de changement de code pour un gain extrèmement minime. Augmente le revalidate_freq à 60 ou 600 tu auras sensiblement le même gain sans devoir redemarrer tout le bouzin pour corriger un bug
Le gain est vraiment visible avec beaucoup d'accès concurrents, mais il reste à la marge, dans 99% des cas les lenteurs sont soit SQL, soit les 47 boucles stupide de Cart et quelques autres pas piqués des vers
-
Merci pour ces éclaircissements.
Je reste également persuadé que ce n'est pas la cause de la lenteur de prestashop, mais vu la lenteur à cause des boucles c'est toujours bon à prendre.
-
Quand j'ai passé ces paramètres à 0 je me suis dis je sens qu'un jour j'allais devenir fou car mes modifs ne seront pas prise en compte, je vais sûrement suivre tes conseilles pour le revalidate_freq