Derniers billets

Boostez vos performances avec OPCache

No comments

Bonjour à tous,\r\n\r\nJ’ai récemment changé ma version PHP pour passer de la version 7.0 à 7.1 sur l’une de mes applications développé avec Symfony.\r\n\r\nSouhaitant gagner en performance le passage en PHP 7.x était vraiment top, et ce sans toucher mon code (Bon quelques léger ajustements sur de petits bugs, c’était un peu plus costaud avec la version 7.1 où il a fallu retirer de nombreuses mauvaises pratiques puisque les\r\n\r\n

\r\nif ($pomme >5)\r\n{\r\n$valeur =' ';\r\n}\r\nelse {\r\n$valeur = 12;\r\n}\r\n\r\n$test+$valeur = $resultat ;\r\n\r\n

\r\n\r\nentrainaient de nombreux\r\n

A non well formed numeric value encountered in ....

\r\n\r\n\r\nJe suis également passé de la version Symfony 2.8.14 à la version Symfony 3.2.2, je pensais qu’en passant sur une version >3 où l’ensemble du code déprécié de Symfony avait été retiré allait me donner encore un boost au niveau de la performance. Mais au final, rien neni, nada .\r\n\r\nJe suis donc partis sur L’OPCache, je pensais que le gain allait être négligeable, mais au final pas du tout, d’où mon billet à ce sujet.\r\nIl faut savoir que ça existe depuis la version 5.6.\r\n\r\nPour l’activer il va falloir toucher à votre fichier php.ini\r\nAprès quelques recherches voilà ma configuration :\r\n\r\n

\r\nopcache.enable=1 //Je commence par activer l'extension\r\n\r\n// C'est la mémoire que peut consommer OPCache, j'ai mis 1 Go, ca peut paraitre beaucoup voire exagéré, mais ayant 16 go de RAM je ne risque pas grand chose\r\nopcache.memory_consumption=1024 \r\n\r\n//Ici j'ai désactivé la fréquence de revalidation\r\nopcache.revalidate_freq=0\r\n\r\n//C'est la mémoire partagé des différentes chaines de caractères\r\nopcache.interned_strings_buffer=128\r\n\r\n//Nombre de fichiers max; ne pas oublier de mettre un nombre premier pour éviter à PHP de recalculer le nombre premier au dessus de votre nombre\r\nopcache.max_accelerated_files=80071\r\n\r\n// Ici c'est le timeout restart si le cache n'est pas utilisé au bout de 12h OPCache se dit qu'il y a peut être une erreur et force le restart\r\nopcache.force_restart_timeout=43200\r\n

\r\n\r\nAttention, avec cette configuration un peu bourrine, il faut savoir que je dois réinitialiser manuellement le cache lors d’un déploiement, j’ai pour ça un script de déploiement qui contient \r\n\r\n

opcache_reset();/

\r\n\r\nN’oubliez pas de relancer votre serveur apache.\r\n\r\nEt voilà vous avez boosté vos performances en 5 minutes sans avoir à changer votre code.\r\n\r\n\r\n

antoineBoostez vos performances avec OPCache