Qu'est-ce qu'Opcache en php ? Introduction aux principes et à l'utilisation d'Opcache

不言
Libérer: 2023-04-04 13:22:01
avant
15295 Les gens l'ont consulté

Le contenu de cet article porte sur qu'est-ce qu'Opcache en php ? L'introduction au principe et à l'utilisation d'Opcache a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer, j'espère qu'elle vous sera utile.

1. Pratique personnelle trouvée opcache

Récemment, afin de faire face à l'impact du trafic élevé lors de Double Eleven, l'éditeur a utilisé un test de stress pour trouver les performances du serveur goulots d'étranglement et a constaté que 100 concurrence À cette époque, le QPS
n'était pas très élevé, mais la consommation de CPU et de mémoire était extrêmement élevée, en particulier la consommation de CPU était de 100%, et nos configurations de conteneurs et de serveurs ont été presque mises à niveau vers le sommet Ce n'est pas ce qu'un si bon serveur devrait faire. L'effet, l'éditeur a donc mené une enquête approfondie :

1. Afficher la partie requête de base de données de l'interface. redis n'est pas très élevé. Cela élimine les facteurs qui affectent les performances de la base de données et du cache ;

2. Vérifiez s'il existe d'autres appels externes qui affectent les performances. n'est obtenu que via la base de données et le cache, il est donc exclu ;

3. Vérifiez s'il y a des problèmes complexes dans le code du programme d'interface. Après un calcul logique, il a été constaté que les données traitées dans cette partie étaient. mis en cache directement après avoir été traité. La source de données pendant un certain temps était le cache Redis, elle a donc été exclue

4. Depuis son installation, les éventuels goulots d'étranglement de l'interface ont été éliminés. que le framework laravel5.0 actuellement utilisé provoque des performances d'interface si faibles. Ensuite, à travers les documents du framework, le code source et les documents en ligne, il s'avère que le framework laravel chargera un grand nombre de fichiers de framework au moment de l'exécution, puis compilera ces fichiers pour. car la consommation du processeur du serveur est extrêmement élevée. Grâce à cette direction, l'éditeur a découvert opcache, une bonne extension PHP pour mettre en cache les fichiers compilés PHP.

2. Le principe d'opcache

1. Qu'est-ce qu'Opcache ?

Opcache est une méthode qui évite la surcharge de chargement et d'analyse des scripts PHP à chaque fois en stockant le bytecode précompilé (Operate Code) du script PHP analysé dans la mémoire partagée. L'analyseur peut lire directement à partir de la mémoire partagée Lire. bytecode mis en cache (Operate Code), améliorant ainsi considérablement l'efficacité d'exécution de PHP.

2. Qu'est-ce que le code d'exploitation ?

Lorsque l'interpréteur termine l'analyse du code du script, il génère un code intermédiaire qui peut être exécuté directement, également appelé opcode (Operate Code, opcode). Le but du cache Opcode est d’éviter les compilations répétées et de réduire la surcharge du processeur et de la mémoire. Si le goulot d'étranglement des performances du contenu dynamique ne réside pas dans le processeur et la mémoire, mais dans les opérations d'E/S, telles que la surcharge d'E/S disque provoquée par les requêtes de base de données, alors l'amélioration des performances du cache d'opcode est très limitée. Mais comme le cache d'opcode peut réduire la surcharge du processeur et de la mémoire, c'est toujours une bonne chose. Les caches d'opcodes modernes (Optimizer+, APC2.0+, autres) utilisent la mémoire partagée pour le stockage et peuvent exécuter des fichiers directement à partir d'eux sans avoir à « désérialiser » le code avant l'exécution. Cela se traduit par des accélérations significatives des performances, une consommation globale de mémoire du serveur souvent inférieure, en particulier en cas de trafic et de concurrence élevés, et présente peu d'inconvénients.

3. Pourquoi utiliser le cache Opcode ?

Cela commence par le cycle de vie du code PHP Lors de la demande d'un script PHP, celui-ci passera par cinq étapes, comme le montre la figure suivante :

<.>Quest-ce quOpcache en php ? Introduction aux principes et à lutilisation dOpcache

Le moteur Zend doit lire un fichier du système de fichiers, analyser son dictionnaire et ses expressions, analyser le fichier, créer du code informatique à exécuter (appelé Opcode), et enfin exécuter l'Opcode . Chaque fois qu'un script PHP est demandé, les étapes ci-dessus seront exécutées une fois. Si le code source PHP ne change pas, alors l'Opcode ne changera pas. Évidemment, il n'est pas nécessaire de régénérer l'Opcode à chaque fois. mécanisme dans le Web, nous pouvons mettre en cache l'Opcode. , ne serait-il pas plus rapide d'accéder directement à l'Opcode mis en cache à l'avenir ? L'organigramme après avoir activé la mise en cache de l'Opcode est le suivant :


Quest-ce quOpcache en php ? Introduction aux principes et à lutilisation dOpcache

Par conséquent, utilisez Une fois le code d'exploitation mis en cache, le code PHP obtiendra directement l'opcode et l'exécutera directement. Les trois étapes intermédiaires seront omises, améliorant ainsi considérablement le code PHP. efficacité d'exécution


3. Installation et utilisation d'Opcache

1. Installation

当你的PHP版本低于7.0时,你可以去http://pecl.php.net/package/ZendOpcache 根据自己的PHP版
本下载相应的opcache版本。比如PHP5.5:http://pecl.php.net/get/zendopcache-7.0.5.tgz
tar -zxvf zendopcache-7.0.5.tgz
cd zendopcache-7.0.5
phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
这是会在php的扩展文件夹内生成opcache.so
PHP7.0之后自带opcache.so无需安装
Copier après la connexion
2. >

3. Configuration

 在php.ini加入zend_extension=opcache.so;
 注意:这里是zend_extension不是extension,关于zend_extension和extension的区别可以去查阅
 相关资料
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal