Les workers PHP traitent le code PHP d’un site. Cela inclut la construction des pages, le traitement des tâches d’arrière-plan, les requêtes sur la base de données, etc.

Une façon d’imaginer les workers PHP est de les comparer aux employés d’un magasin. Chaque workers ne peut traiter qu’une seule requête à la fois. S’il y a plus de clients que de workers, ces clients (processus) doivent faire la queue et attendre le prochain worker disponible pour traiter leur requête.

Les workers PHP entrent vraiment en jeu lorsqu’un site ne met pas ou ne peut pas mettre en cache la majeure partie de son contenu. Plus un site web est dynamique, plus il aura besoin de workers PHP. Le contenu mis en cache ne nécessite pas de workers PHP, ils ne sont vraiment nécessaires que lorsque le site doit interroger la base de données pour obtenir ou modifier des informations.

WordPress et les workers PHP

Une requête non mise en cache sur un site WordPress se déroule généralement comme suit :

  1. Un visiteur visite une page ou effectue une action sur une page (par exemple, ajouter quelque chose à un panier, envoyer un formulaire, etc.)
  2. Le serveur web (Nginx ici chez Kinsta) reçoit cette requête.
  3. Nginx transmet la requête à PHP.
  4. PHP interroge la base de données MySQL et obtient les informations dont il a besoin ou effectue les mises à jour nécessaires.
  5. PHP utilise ensuite les fichiers PHP de votre thème (et les fichiers des extensions, le cas échéant) pour générer une page HTML.
  6. PHP renvoie la page HTML rendue au serveur web.
  7. La page est servie au visiteur.

Dans le processus décrit ci-dessus, l’étape 4 est la plus gourmande en temps et en ressources (CPU et RAM). Un site bien optimisé avec un code PHP et des requêtes de base de données efficaces traitera cette étape assez rapidement.

En revanche, un code PHP mal écrit ou non optimisé et/ou un grand nombre de requêtes de base de données inefficaces prendront beaucoup plus de temps pour passer l’étape 4. Les requêtes qui prennent plus de temps à traiter monopolisent les workers PHP pendant de plus longues périodes.

Estimation du nombre de workers PHP nécessaires

Le nombre de workers dont un site a besoin dépend de plusieurs facteurs, tels que : le dynamisme du site, l’optimisation du code du site (la rapidité avec laquelle les requêtes peuvent être traitées), et le type de trafic que le site reçoit. Un site optimisé traite les requêtes rapidement, libérant les workers PHP pour la prochaine requête dans la file d’attente.

Les sites dynamiques comme les boutiques de commerce électronique, les forums, les sites d’apprentissage et les sites d’adhésion ont généralement besoin de plus de workers PHP que les sites plus statiques, de type brochure. De même, plus un site est actif, plus il a besoin de workers PHP.

Workers PHP, CPU et RAM

Lorsque vous ajoutez des workers PHP, les ressources CPU et RAM doivent être prises en compte. Si vous augmentez le nombre de workers PHP, mais que le serveur ne dispose pas de suffisamment de CPU et de RAM pour prendre en charge ces workers, cela créera un goulot d’étranglement car les requêtes ne seront pas traitées efficacement.

Ici, chez Kinsta, nos conteneurs LXD personnalisés sont configurés avec beaucoup de ressources CPU et RAM. De plus, en utilisant des machines virtuelles C2 optimisées pour le calcul et équipées des CPU les plus rapides de Google Cloud, nous aidons les workers PHP de votre site à fonctionner plus efficacement. Notre infrastructure évolutive garantit que les workers PHP de votre site WordPress disposent de suffisamment de ressources CPU pour fonctionner au maximum de leurs performances.

Identifiez les problèmes de performance liés aux workers PHP

Si un trop grand nombre de requêtes s’accumulent dans la file d’attente en raison d’un afflux important de requêtes, de processus de longue durée ou d’une combinaison des deux, le site peut connaître des problèmes de performances qui peuvent se traduire par des erreurs 502 ou 504.

L’utilisation d’outils comme Kinsta APM et l’extension Query Monitor peut vous aider à identifier les problèmes de performance et les requêtes lentes. Nous recommandons également de travailler avec un expert en performance qualifié pour diagnostiquer les problèmes.

Cliquez sur le bouton Activer Kinsta APM pour l'activer dans MyKinsta.
Cliquez sur le bouton Activer Kinsta APM pour l’activer dans MyKinsta.

Le graphique de la limite des workers PHP dans MyKinsta analytics vous montre combien de fois le nombre maximum de workers alloués a été atteint sur votre site. Cela peut vous aider à déterminer si votre site utilise continuellement ses workers PHP et peut également vous montrer comment la mise à jour vers une version plus récente du moteur PHP peut aider.

Limite de workers PHP
Limite de workers PHP

La section d’analyse du cache dans MyKinsta analytics peut être utilisée pour visualiser le total des requêtes en cache de votre site et le top des contournements de cache.

Cache - graphique des composants du cache
Cache – graphique des composants du cache
Cache - top cache bypasses
Cache – top cache bypasses

Réduire et optimiser l’utilisation de worker PHP

Mise en cache

Mise en cache des pages

La mise en cache est votre meilleur ami lorsqu’il s’agit d’optimiser votre site et de réduire le nombre de workers PHP nécessaires. N’oubliez pas que les workers PHP ne sont pas nécessaires pour le contenu mis en cache, alors mettez en cache tout ce que vous pouvez. Chez Kinsta, nous nous occupons de la mise en cache des pages pour vous ; tous les sites utilisent le module de cache FastCGI de Nginx pour des performances ultra-rapides.

Cache objet

L’ajout d’un cache objet persistant comme Redis devant votre base de données peut améliorer les performances et réduire le besoin de workers PHP. Sans la mise en cache des objets, les requêtes de la base de données MySQL sont exécutées pour chaque requête, même s’il s’agit de la même requête et des mêmes résultats.

Redis stocke les résultats des requêtes de base de données dans la mémoire vive afin que PHP puisse récupérer ces résultats sans avoir à ré-exécuter la requête. En supprimant le besoin de requêtes de base de données répétitives, les workers PHP peuvent conserver les ressources et répondre aux requêtes plus efficacement.

Consultez nos modules premium pour en savoir plus sur l’ajout du cache Redis à votre site.

Optimisation du code

Assurez-vous que le code de votre site est optimisé afin qu’il soit aussi efficace que possible. Cela s’applique au code personnalisé, au code du thème et au code des extensions. Si vous n’êtes pas sûr, nous vous recommandons de demander à un développeur d’examiner le code de votre site.

Code personnalisé

Si votre site web contient des extraits de code personnalisé dans des extensions ou dans votre thème, assurez-vous qu’ils sont vraiment nécessaires et bien rédigés.

Extensions

Examinez attentivement les extensions utilisées sur le site et assurez-vous qu’elles sont vraiment nécessaires, qu’elles ne font pas double emploi et qu’elles constituent la meilleure option pour le besoin auquel elles répondent. Si certaines extensions ne sont pas compatibles avec la dernière version de WordPress et de PHP, il est peut-être temps d’envisager d’autres options. Si vous avez des extensions sur votre site qui ne sont pas utilisées, il est recommandé de les supprimer.

Thème

Utilisez un thème léger et performant. Évitez les thèmes contenant des fonctionnalités qui sont mieux implémentées via des extensions séparées (par exemple, SEO, filtrage de recherche, champs personnalisés, diaporamas, etc.) ou qui ne sont pas nécessaires pour votre site.

Mettez à jour PHP

Utilisez la dernière version de PHP pour des performances plus rapides. Les benchmarks PHP montrent que chaque version PHP est plus rapide que la précédente.

Activer le CDN de Kinsta

L’activation du CDN de Kinsta donne un autre coup de pouce à l’efficacité et à l’optimisation de votre site. Kinsta CDN est notre CDN HTTP/3 haute performance alimenté par Cloudflare, sans frais supplémentaires. S’il est activé, votre site sera en mesure de servir des ressources statiques à partir de sites situés dans le monde entier.

Consultez un expert en performances

Si vous êtes familier avec l’optimisation de site, cette étape est facultative. Un expert peut vous aider à analyser tous les aspects de vos sites, à identifier les goulots d’étranglement et à mettre en œuvre des solutions.