Table des matières
Vous devez redémarrer php-fpm après la configuration" >Vous devez redémarrer php-fpm après la configuration
Rapport d'agrégation" >Taux d'échec : 24%Rapport d'agrégation
Transactions traitées par seconde" >Transactions traitées par seconde
Rapport d'agrégation" >Rapport d'agrégation
Maison développement back-end PHP7 Les notes de haute qualité sont ici ! À propos de l'optimisation des performances PHP7

Les notes de haute qualité sont ici ! À propos de l'optimisation des performances PHP7

Sep 18, 2021 pm 04:12 PM
php7

Opcache

1. Principe d'Opcache
Le processus d'exécution normal de PHP est le suivant

demande de requête (nginx, apache, cli, etc.) –> ; scanne son dictionnaire et son expression –> Analyser le fichier –> Créer le code informatique à exécuter (appelé Opcode) –> Enfin, exécuter l'Opcode –> exécuté 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. Combiné avec le mécanisme de mise en cache omniprésent sur le Web, nous pouvons mettre en cache l'Opcode. Ne sera-t-il pas plus rapide d'accéder directement à l'Opcode mis en cache à l'avenir ? Activer la mise en cache de l'Opcode L'organigramme suivant est le suivant :

Le but du cache de l'Opcode est d'éviter une compilation répétée et de réduire la surcharge du processeur et de la mémoire.

2. Configuration d'Opcache
Ajouter sous php.ini :

// 加载opcache(需确认已安装opcache拓展)
zend_extension=opcache.so
// 开启opcache
opcache.enable = 1
// OPcache共享内存存储大小,单位MB
opcache.memory_consumption=1024 // 1G
// PHP使用了一种叫做字符串驻留,默认是4MB
opcache.interned_strings_buffer=32
// 这个选项用于控制内存中最多可以缓存多少个PHP文件,这个选项必须得设置得足够大,大于你的项目中的所有PHP文件的总和
opcache.max_accelerated_files=80000
// 设置缓存的过期时间(单位是秒),为0的话每次都要检查
opcache.revalidate_freq=3
// 从字面上理解就是“允许更快速关闭”
opcache.fast_shutdown=1
// CLI环境下,PHP启用OPcache
opcache.enable_cli=1
Copier après la connexion

HugePage

1. Principe de HugePage

En activant cette fonctionnalité, PHP7 "déplacera" son propre segment TEXTE (corps d'exécution) vers Huagepage , dans le précédent. tests, nous avons pu constater régulièrement une augmentation du QPS de 2 à 3 % sur WordPress. Quant à ce qu'est Hugepage, pour faire simple, la mémoire par défaut est paginée en 4 Ko, et l'adresse virtuelle et l'adresse mémoire doivent être converties, et cette conversion nécessite une recherche dans la table afin d'accélérer le processus de recherche dans la table. , le CPU aura un TLB (Translation Lookaside Buffer) intégré, il est évident que si la page virtuelle est plus petite, le nombre d'entrées dans le tableau sera plus important et la taille du TLB est limitée. Plus il y a d'entrées, plus elle est élevée. le Cache Miss du TLB le sera, donc si nous pouvons activer les grandes pages de mémoire, nous pouvons indirectement réduire ce TLB Cache Miss. Quant à l'introduction détaillée, je n'entrerai pas dans les détails après de nombreuses recherches sur Google. Ici, j'explique principalement comment faire. activez cette nouvelle fonctionnalité, qui apportera des améliorations significatives des performances.

2. fichiers php compilés en tant que fichiers pour obtenir la protection du code source php et l'accélération des scripts. Il y aura des améliorations évidentes des performances
2. Configuration du cache de fichiers Opcache

Ajoutez dans php.ini:

$ sudo sysctl vm.nr_hugepages=512 // 切勿越大越好,会长占内存
Copier après la connexion

De cette façon, PHP permettra d'exporter certains fichiers binaires Opcode. être mis en cache dans le répertoire /tmp, qui peut exister tout au long du cycle de vie PHP

Vous devez redémarrer php-fpm après la configuration

Test personnel
Système : centOs 7
version php : 7.4 nginx. laravel : 8,5

Avant optimisation

cpu : 95%-96%Mémoire : 2G/16G

Concurrence 4W en 10 minutes

Taux d'échec : 24%Rapport d'agrégation



Traitement des transactions par seconde
! [Optimisation des performances PHP7]

![Notes d'optimisation des performances PHP7]


Après optimisation

Cpu : 20 % -40 %

Mémoire : 5,8 G/16 G (Ici, j'ai réglé HugePage sur 2048)

4W en 10 minutes Concurrence
Taux d'échec : 0 %Les notes de haute qualité sont ici ! À propos de loptimisation des performances PHP7


Premier test de stress

Rapport d'agrégationLes notes de haute qualité sont ici ! À propos de loptimisation des performances PHP7




Deuxième test de stress


Les notes de haute qualité sont ici ! À propos de loptimisation des performances PHP7 chaque Traiter les transactions en quelques secondes

Les notes de haute qualité sont ici ! À propos de loptimisation des performances PHP7Apprentissage recommandé : "

Tutoriel PHP7

"

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment installer l'extension mongo dans php7.0 Comment installer l'extension mongo dans php7.0 Nov 21, 2022 am 10:25 AM

Comment installer l'extension mongo dans php7.0 : 1. Créez le groupe d'utilisateurs et l'utilisateur mongodb ; 2. Téléchargez le package de code source mongodb et placez le package de code source dans le répertoire "/usr/local/src/" ; Entrez le répertoire « src/ » ; 4. Décompressez le package de code source ; 5. Créez le répertoire de fichiers mongodb ; 6. Copiez les fichiers dans le répertoire « mongodb/ » 7. Créez le fichier de configuration mongodb et modifiez la configuration.

Comment résoudre le problème lorsque php7 détecte que le port TCP ne fonctionne pas Comment résoudre le problème lorsque php7 détecte que le port TCP ne fonctionne pas Mar 22, 2023 am 09:30 AM

En php5, nous pouvons utiliser la fonction fsockopen() pour détecter le port TCP. Cette fonction peut être utilisée pour ouvrir une connexion réseau et effectuer certaines communications réseau. Mais en php7, la fonction fsockopen() peut rencontrer certains problèmes, comme ne pas pouvoir ouvrir le port, ne pas pouvoir se connecter au serveur, etc. Afin de résoudre ce problème, nous pouvons utiliser la fonction socket_create() et la fonction socket_connect() pour détecter le port TCP.

Que dois-je faire si le plug-in est installé dans php7.0 mais qu'il indique toujours qu'il n'est pas installé ? Que dois-je faire si le plug-in est installé dans php7.0 mais qu'il indique toujours qu'il n'est pas installé ? Apr 02, 2024 pm 07:39 PM

Pour résoudre le problème du plugin n'affichant pas installé dans PHP 7.0 : Vérifiez la configuration du plugin et activez le plugin. Redémarrez PHP pour appliquer les modifications de configuration. Vérifiez les autorisations du fichier du plugin pour vous assurer qu'elles sont correctes. Installez les dépendances manquantes pour garantir le bon fonctionnement du plugin. Si toutes les autres étapes échouent, reconstruisez PHP. D'autres causes possibles incluent des versions de plugin incompatibles, le chargement d'une mauvaise version ou des problèmes de configuration PHP.

Guide FAQ de l'environnement serveur PHP : résoudre rapidement les problèmes courants Guide FAQ de l'environnement serveur PHP : résoudre rapidement les problèmes courants Apr 09, 2024 pm 01:33 PM

Les solutions courantes pour les environnements de serveur PHP consistent à s'assurer que la version correcte de PHP est installée et que les fichiers pertinents ont été copiés dans le répertoire du module. Désactivez SELinux temporairement ou définitivement. Vérifiez et configurez PHP.ini pour vous assurer que les extensions nécessaires ont été ajoutées et configurées correctement. Démarrez ou redémarrez le service PHP-FPM. Vérifiez les paramètres DNS pour les problèmes de résolution.

Comment installer et déployer php7.0 Comment installer et déployer php7.0 Nov 30, 2022 am 09:56 AM

Comment installer et déployer php7.0 : 1. Accédez au site officiel de PHP pour télécharger la version d'installation correspondant au système local ; 2. Extrayez le fichier zip téléchargé dans le répertoire spécifié 3. Ouvrez la fenêtre de ligne de commande et accédez à ; le répertoire "E:\php7" Exécutez simplement la commande "php -v".

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Mar 31, 2025 pm 11:54 PM

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système. Chaque fois que le système redémarre, nous devons exécuter la commande suivante pour modifier les autorisations d'UnixSocket: sudo ...

Pourquoi une erreur se produit-elle lors de l'installation d'une extension à l'aide de PECL dans un environnement Docker? Comment le résoudre? Pourquoi une erreur se produit-elle lors de l'installation d'une extension à l'aide de PECL dans un environnement Docker? Comment le résoudre? Apr 01, 2025 pm 03:06 PM

Causes et solutions pour les erreurs Lors de l'utilisation de PECL pour installer des extensions dans un environnement Docker Lorsque nous utilisons un environnement Docker, nous rencontrons souvent des maux de tête ...

Lequel est le meilleur, php8 ou php7 ? Lequel est le meilleur, php8 ou php7 ? Nov 16, 2023 pm 03:09 PM

Par rapport à PHP7, PHP8 présente certains avantages et améliorations en termes de performances, de nouvelles fonctionnalités et améliorations de la syntaxe, du système de types, de la gestion des erreurs et des extensions. Cependant, le choix de la version à utiliser dépend de vos besoins spécifiques et des circonstances du projet. Introduction détaillée : 1. Amélioration des performances, PHP8 introduit le compilateur Just-in-Time (JIT), qui peut améliorer la vitesse d'exécution du code ; 2. Nouvelles fonctionnalités et améliorations de la syntaxe, PHP8 prend en charge la déclaration des paramètres nommés et des paramètres facultatifs, création de fonctions L'appel est plus flexible ; des classes anonymes, des déclarations de propriétés de type, etc. sont introduites.

See all articles