1
votes

Comprendre le comportement d'OPCache

Même si le site Web est derrière CloudFlare CDN, nous avons décidé d'utiliser OPCache pour réduire la charge sur le serveur car il y a un maximum (pic) de ~ 400 utilisateurs actifs par seconde (la plupart du temps c'est 50-100 u / s ).

Mais la plupart des pages ont des données différentes pour chaque utilisateur, par exemple la vue d'ensemble du tableau de bord de l'utilisateur, la plupart des données sont identiques mais il y a des numéros différents pour chaque utilisateur qui doit être à jour.

Mes questions sont:

  1. Est-il judicieux d'utiliser OPCache pour un tel site Web?
  2. Comment traitera-t-il les pages contenant des requêtes uniques? cela prendra-t-il plus de RAM (mettre en cache plusieurs pages pour chaque utilisateur) que de fonctionner sans OPCache?
  3. Cela affectera-t-il les performances sur des pages telles que Inscription / Connexion, etc.
  4. J'ai lu que toutes les applications PHP doivent utiliser OPCache, est-ce correct?

P.S. Le site Web fonctionne sous PHP 7.3.4


0 commentaires

4 Réponses :


6
votes
  1. Oui, les performances seront améliorées
  2. Si votre utilisation de la RAM a augmenté et que cela vous préoccupe, vous pouvez affiner la consommation de mémoire via opcache.memory_consumption
  3. Affecter ce qui signifie qu'ils seront plus rapides
  4. Oui, il n'y a vraiment aucune raison de ne pas utiliser OPCache en dehors des cas marginaux (par exemple, lorsque le code source de votre application change à un rythme ou des tests très rapides).

TLDR: Le code de production doit toujours avoir OPCached activé.


0 commentaires

5
votes

OPcache met uniquement en cache la représentation d'opcode interne d'un script PHP, pas sa sortie. Les requêtes effectuées ou le contenu affiché par la page n'ont aucun impact sur le comportement d'OPcache.

Cette mise en cache améliorera les performances de toutes les pages Web PHP. En tant que tel, il doit toujours être activé sur les sites de production.


1 commentaires

Je pensais que cela mettrait également en cache la sortie, donc je me suis trompé, note prise, merci



0
votes

Comme vue générale de cette approche La mise en cache php quel que soit le cache APC ou opcache ou bien est une stratégie incroyable cela devrait augmenter les performances de php de 50% en général Comme il agit comme suit Lorsque le script php est exécuté, cela implique trois étapes majeures

1-analyse du script

2-compilation du script

3 sorties

Le cache APC ou bien agit comme intermédiaire car il enregistre le script php sous la forme compilée afin que php démarre directement dans l'étape de sortie et cela n'affectera pas les requêtes mais cela augmentera sa vitesse en tant que requête pour MySQL ou bien pas seulement l'instruction de SELECT ou autre, mais cela implique l'exécution d'extensions comme PDO donc cela deviendra plus rapide

Vous pouvez classer l'extension comme suit

APC ou Xcache pour php 5

Dans la nouvelle version de php, utilisez opcache

Tous ont le même principe Certains développeurs aiment APC d'autres comme opcache À titre d'exemple, X-cart, la plate-forme d'achat populaire utilise xcache.


0 commentaires

2
votes

Chaque script PHP est en cours de compilation lors de l'exécution, Il faut du temps pour transformer le code lisible par l'homme en un code compréhensible par la machine.

OpCache est un moteur de cache bytecode, il ne compilera le script en bytecode qu'une seule fois - vous gagnerez donc du temps - puis le script précompilé est stocké en mémoire, ce qui devrait conduire à des améliorations de performances dans vos applications PHP.

Ce que je pense qu'il vous manque, c'est que l'opcache NE cache PAS le résultat du script, mais il s'agit simplement de compiler le script.

Notez que cette méthode n'est pas bonne si le script php change lui-même pour chaque utilisateur ou s'il est chargé à partir de - disons par exemple - une base de données


0 commentaires