PHP

PHP (Hypertext Preprocessor) est un langage de script open source particulièrement adapté au développement web. Il fonctionne côté serveur, ce qui signifie qu’il traite le code sur le serveur web avant de l’envoyer au client (navigateur). WordPress repose sur le langage PHP, qui est donc essentiel pour les sites WordPress. PHP permet à votre site WordPress de :

  • Générer du contenu dynamique et l’afficher sur un site web en temps réel.
  • Interagir avec votre base de données, ce qui lui permet de récupérer et de stocker des données.
  • Gérer des formulaires et traiter les données saisies par l’utilisateur, ce qui rend les sites WordPress plus interactifs.
  • Utiliser des thèmes et des extensions pour étendre les capacités de base de WordPress.
  • Améliorer les performances en veillant à ce que la plupart des tâches lourdes soient effectuées sur le serveur web avant que le contenu n’atteigne le navigateur de l’utilisateur.

Comment PHP est traité

Lorsqu’un visiteur se rend sur une page non mise en cache ou effectue une action sur une page comme par exemple, ajouter quelque chose à un panier, envoyer un formulaire, etc :

  1. Le serveur web (Nginx chez Kinsta) reçoit la requête.
  2. Nginx transmet la requête à PHP, qui est assigné à un thread PHP disponible.
  3. Le thread PHP exécute le script PHP (par exemple, il récupère les données de la base de données ou traite les formulaires).
  4. Pendant le traitement, le thread PHP utilise une partie de la mémoire du serveur jusqu’à la limite de mémoire PHP définie dans Kinsta.
  5. S’il y a plusieurs visiteurs simultanés, chaque demande est assignée à un thread PHP différent. Si tous les threads sont occupés, les requêtes supplémentaires attendent qu’un thread se libère.
  6. PHP génère ensuite une page HTML en utilisant les fichiers PHP de votre thème (et tout fichier d’extension, le cas échéant).
  7. PHP renvoie la page HTML rendue au serveur web.
  8. La page est servie au visiteur.

Si votre site n’utilise pas la mise en cache ou n’est pas optimisé, les threads PHP peuvent être occupés plus longtemps, ce qui peut dégrader les performances et entraîner des dépassements de délai ou des erreurs 503 et 504 lorsque les visiteurs accèdent à votre site. Pour plus d’informations sur la manière de vérifier les performances de PHP et d’optimiser vos threads PHP, reportez-vous à la section Performances PHP.

Threads PHP

Les threads PHP (anciennement connus sous le nom de workers PHP) sont des processus PHP individuels chargés de traiter les requêtes entrantes sur votre site web. Chaque thread traite une requête à la fois, ce qui signifie que si vous avez deux threads, seules deux requêtes peuvent être traitées simultanément.

Une fois qu’un thread PHP a fini de traiter une requête (par exemple, le rendu d’une page ou l’extraction de données d’une base de données), il devient libre de traiter la requête suivante.

Les threads PHP entrent réellement en jeu lorsqu’un site ne met pas ou ne peut pas mettre en cache la majeure partie de son contenu. Plus un site est dynamique, plus il aura besoin de threads PHP. Le contenu mis en cache ne nécessite pas de threads PHP ; ils ne sont vraiment nécessaires que lorsque le site doit interroger la base de données pour obtenir ou modifier des informations. Un site optimisé traite les requêtes rapidement, libérant ainsi des threads PHP pour la requête suivante dans la file d’attente.

Pour plus d’informations sur l’optimisation de vos threads PHP, reportez-vous à la section Performances PHP.

Plans Kinsta et threads PHP

Le tableau suivant montre le pool PHP par défaut, le nombre de threads et la mémoire par thread qui sont inclus par défaut dans chaque plan chez Kinsta :

PlanTaille du poolNombre de threadsMémoire par thread
Single 35k512 Mo2256 Mo
Single 65k1 Go4256 Mo
Single 125k1.5 Go6256 Mo
Single 315k1.5 Go6256 Mo
Single 500k2 Go8256 Mo
Single 750k2 Go8256 Mo
WP 2512 Mo2256 Mo
WP 51 Go4256 Mo
WP 101 Go4256 Mo
WP 201.5 Go6256Mo
WP 401.5 Go6256 Mo

Vous pouvez modifier le nombre de threads PHP pour chaque site dans les sites WordPress > nom du site > Info > Performances PHP > Modifier.

Les plans suivants n’ont actuellement pas accès à la fonctionnalité de performance PHP ou aux pools PHP. Cependant, ils incluent le nombre suivant de threads PHP par défaut :

PlanNombre de threads PHP par site
Single 1.25M10
Single 1.9M12
Single 2.5M14
Single 3.15M16
WP 608
WP 8010
WP 12012
WP 15014
Agency 206
Agency 406
Agency 608

Limite de mémoire PHP

La limite de mémoire de PHP définit la quantité maximale de mémoire (RAM) que chaque thread PHP peut utiliser lors du traitement d’une requête.

Cette limite est cruciale car les scripts PHP (en particulier dans WordPress) doivent souvent gérer des tâches gourmandes en mémoire, telles que des requêtes de base de données volumineuses, des téléversements de fichiers multimédias ou des calculs complexes.

Si un script dépasse la limite de mémoire fixée, il génère une erreur (par exemple, « Taille de mémoire autorisée épuisée »). Cela permet d’éviter qu’un script ne consomme trop de ressources du serveur.

Plans Kinsta et mémoire PHP

La limite de mémoire par défaut de Kinsta est de 256 Mo pour les plans Single 35k, 65k, 125k, 315k, 500k, et 750k, et WP 2, 5, 10, 20, et 40, ce qui est plus que suffisant pour la plupart des extensions et sites WordPress. Les plans Single 1,25M, 1,9M, 2,5M, et 3,15M, WP 60, 80, 120, et 150, et Agency 20, 40, et 60 ont une limite de mémoire de 512 Mo. Cette limite a pour but d’empêcher les scripts PHP de consommer trop de mémoire. Si vous fixez une limite trop élevée, un script mal configuré ou défectueux peut causer de graves problèmes en consommant trop de mémoire.

Vous pouvez modifier la limite de mémoire PHP d’un site dans les Sites WordPress > nom du site > Info > Performances PHP > Modifier.

Interaction entre les threads PHP et la mémoire

Le nombre de threads PHP ne doit pas être confondu avec la limite de mémoire PHP. Les threads PHP sont des processus PHP individuels qui traitent les requêtes web entrantes, tandis que la limite de mémoire PHP spécifie la quantité maximale de mémoire (RAM) qu’un script PHP unique peut utiliser pendant l’exécution.

Les threads PHP gèrent la concurrence en traitant plusieurs requêtes simultanément, tandis que la limite de mémoire PHP gère l’allocation des ressources en limitant l’utilisation de la mémoire par les scripts individuels. Cela permet d’éviter qu’un seul script n’utilise toute la mémoire disponible du serveur.

Les limites de mémoire de PHP sont importantes pour les scripts nécessitant beaucoup de mémoire, tels que ceux qui exécutent des requêtes de base de données volumineuses, qui gèrent des téléversements de fichiers volumineux ou qui exécutent des calculs complexes. Si vous rencontrez des erreurs de limite de mémoire sur votre site, l’augmentation du nombre de threads PHP ne résoudra pas le problème. Vous devriez plutôt augmenter la mémoire par thread dans les sites WordPress > nom du site > Info > Performances PHP > Modifier.

Interaction entre les threads PHP et la mémoire

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

Chez Kinsta, chaque conteneur LXD personnalisé est configuré avec 12 CPU et 8 Go de RAM. De plus, en utilisant des machines virtuelles C2 et C3D optimisées pour le calcul et équipées des CPU les plus rapides de Google Cloud, nous aidons les threads PHP de votre site à fonctionner plus efficacement. Notre infrastructure évolutive garantit que les threads PHP de votre site WordPress disposent de suffisamment de ressources CPU pour fonctionner de manière optimale.

Valeurs PHP par défaut

En tant que service WordPress infogéré, Kinsta dispose des réglages PHP optimaux configurés pour fonctionner au mieux avec les sites WordPress. Si vous avez des besoins spécifiques en PHP, n’hésitez pas à contacter notre équipe de support pour en discuter.

Kinsta propose PHP 7.4, 8.0, 8.1, 8.2, 8.3 et 8.4. Ce sont les réglages par défaut de PHP :

  • memory_limit = 256M
  • post_max_size = 128M
  • upload_max_filesize = 128M
  • max_input_vars = 10000
  • max_execution_time = 300
Cet article vous a été utile ?