Dans PHP, OPCACHE est un système de mise en cache qui accélère l'exécution des scripts PHP par ByteCode en cache. La fonction OPCACHE_GET_STATUS est un outil de débogage très pratique qui peut être utilisé pour obtenir les informations d'état actuelles d'Opcache. Grâce à cette fonction, nous pouvons vérifier l'utilisation du cache, le taux de succès et d'autres métriques de performance.
La syntaxe de base de la fonction opcache_get_status est la suivante:
<span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-title function_ invoke__">opcache_get_status</span></span><span> ( </span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-variable">$no_cache</span></span><span> = </span><span><span class="hljs-literal">false</span></span><span> )
</span></span>
Parmi eux, le paramètre $ no_cache détermine s'il faut utiliser le cache pour obtenir des données. La valeur par défaut est fausse , c'est-à-dire lire les données du cache. S'il est défini sur true , les données seront lues directement à partir du cache Opcache, en ignorant le contenu du cache actuel.
Cette fonction renvoie un tableau associatif contenant des informations d'état OPCACH. Ci-dessous, nous expliquons en détail la signification de chaque champ du tableau.
Le tableau renvoyé par OPCACHE_GET_STATUS contient deux pièces principales: OPCACH et SCRIPTS . Les champs spécifiques et leurs significations sont les suivants:
Cette section contient des statistiques globales liées à Opcache, et les principaux champs comprennent:
Version : le numéro de version actuel d'Opcache.
Exemples: "7.4.3" , "8.0.0"
Ce champ vous indique la version actuelle d'Opcache, qui peut être utilisée pour vérifier si les mises à jour sont nécessaires.
Memory_usage : statistiques d'utilisation de la mémoire, y compris les sous-champs suivants:
usage_memory : Opcache le nombre d'octets de mémoire utilisés.
Free_memory : le nombre d'octets de mémoire disponibles pour Opcache.
Wasted_memory : le nombre d'octets de mémoire gaspillés, généralement en raison de données ou de fragmentation non valides dans le cache.
current_wasted_percentage : le pourcentage de la mémoire gaspillée actuelle comme mémoire totale.
Exemple:
<span><span><span class="hljs-string">"memory_usage"</span></span><span> => </span><span><span class="hljs-keyword">array</span></span><span>(
</span><span><span class="hljs-string">"used_memory"</span></span><span> => </span><span><span class="hljs-number">12345678</span></span><span>,
</span><span><span class="hljs-string">"free_memory"</span></span><span> => </span><span><span class="hljs-number">8765432</span></span><span>,
</span><span><span class="hljs-string">"wasted_memory"</span></span><span> => </span><span><span class="hljs-number">123456</span></span><span>,
</span><span><span class="hljs-string">"current_wasted_percentage"</span></span><span> => </span><span><span class="hljs-number">1.2</span></span><span>
)
</span></span>
OPCACHE_HIT_RATE : Le taux de succès d'Opcache, qui représente la proportion de coups de cache, est généralement retourné en pourcentage.
Exemple: 98,4%
Ce champ est un indicateur clé pour mesurer l'effet de cache. Plus la valeur est élevée, plus le taux de réussite du cache est élevé et plus les performances sont élevées.
cache_full : une valeur booléenne indiquant si le cache Opcache est plein. Vrai signifie que le cache est plein, faux signifie que le cache n'est pas plein.
Exemple: vrai ou faux
Restart_Pending : une valeur booléenne indiquant s'il existe un plan pour redémarrer OPCACH. Le vrai signifie qu'il est en attente de redémarrage, False signifie qu'il n'est pas nécessaire de redémarrer.
restart_in_progress : une valeur booléenne indiquant si un redémarrage de cache est effectué. Si cela est vrai , cela signifie qu'Opcache effectue une opération de redémarrage de cache.
La section Scripts contient les informations d'état de tous les scripts dans le cache actuel, y compris les champs suivants:
Nom de fichier : le chemin du fichier du script.
Exemple: "/var/www/html/index.php"
OPCACHE_HITS : Le nombre de fois où le script est en cache. Autrement dit, le nombre de fois où le script est chargé à partir du cache.
Memory_consomption : le nombre d'octets de mémoire occupés par le script en opcache.
Last_Used : L'horodatage que le script a utilisé pour la dernière fois.
Timestamp : l'horodatage que le script cache pour la première fois.
Utilisateur : les informations utilisateur du script, généralement le nom d'utilisateur lorsque le script est exécuté.
En plus des champs communs mentionnés ci-dessus, le tableau renvoyé par OPCACHE_GET_STATUS peut également contenir des informations de débogage et des informations de configuration spécifiques, qui seront différentes en fonction de la version PHP et de la configuration OPCACHE.
Comprendre la signification de ces champs peut nous aider à surveiller et à optimiser l'utilisation d'Opcache. Voici comment interpréter et utiliser ces informations:
Utilisation de la mémoire : les champs USSED_MEMORY et FREE_MEMORY peuvent vous aider à comprendre l'utilisation de la mémoire en cache. Si used_memory occupe la majeure partie de la mémoire et que Free_memory est faible, cela peut signifier que la mémoire du cache doit être augmentée ou que le cache est nettoyé. Les valeurs de Wasted_memory et Current_WASTED_PERCENTAGE peuvent vous aider à déterminer s'il y a un problème de fragmentation avec le cache. Si la proportion de mémoire gaspillée est élevée, vous pouvez envisager d'ajuster les paramètres du cache pour optimiser les performances.
Taux de hit : OPCACHE_HIT_RATE est un indicateur important des performances OPCACH. Un taux de succès élevé signifie que la stratégie de cache OPCACH fonctionne bien, et la plupart des scripts PHP sont chargés à partir du cache et s'exécutent plus rapidement. Si le taux de succès est faible, vous devrez peut-être ajuster la configuration OPCACH ou vérifier si un grand nombre de scripts sont fréquemment modifiés, entraînant une défaillance du cache.
Cache Restart : les champs Restart_Pending et Restart_in_Progress peuvent vous aider à comprendre si Opcache est dans un état de redémarrage. Si le cache est redémarré fréquemment, cela peut être dû à une mauvaise configuration ou à d'autres raisons. Vous devez vérifier le fichier de configuration OPCACHE pour voir s'il y a des paramètres qui doivent être ajustés.
État du script : la section Scripts répertorie tous les scripts et leurs informations d'état dans le cache. Grâce à ces informations, vous pouvez comprendre l'état du cache de chaque script et découvrir rapidement quels scripts ont un taux de succès du cache inférieur, ou quels scripts occupent plus de mémoire, optimisant ainsi des scripts spécifiques.
Grâce aux données renvoyées par la fonction OPCACHE_GET_STATUS , nous pouvons surveiller l'état d'Opcache en temps réel, optimisant ainsi l'efficacité d'exécution des scripts PHP. Comprendre et analyser la signification de ces domaines peut aider les développeurs à configurer efficacement OPCACH et à améliorer la vitesse de réponse et les performances de leurs sites Web.