PHP-FPM : Le superman des requêtes

27.03 / 2015

URL

Site PHP

GESTION DE PROJET

HÉBERGEMENT

Hébergement

PHP

Serveur

Réalisation

Blog

Un gestionnaire FastCGI simple et robuste pour PHP

Il est assez fascinant de constater la progression exponentielle des sites créés avec des CMS.

CMS 2014

Trouver des chiffres sur la part de sites n’utilisant pas de CMS a été une vraie gageure ! (Si vous disposez de chiffres plus explicites, n’hésitez surtout pas à me les faire suivre.)

Si les CMS sont ouverts au commun des mortels, un moyen de gérer facilement leur site internet et parfois de le créer (WordPress notamment), il n’empêche que leurs structures font appel à énormément de librairies pour charger et interpréter une page.

Avoir un site au web design novateur (ergonomie incluse) et au codage parfait est bien sûr le principal challenge pour la plupart des donneurs d’ordre (clients). Il convient de les faire réagir sur la première préoccupation des utilisateurs : Quel est le « Temps d’Attente tolérable » (TAT)* ?

Un chargement trop long peut pénaliser considérablement une réputation, une fréquentation ou un chiffre d’affaire et réduire à néant de nombreux efforts et de lourds investissements. Et pourtant, la rapidité d’un site apparaît comme une évidence pour tous !

Incidence chargement long

 

Le Php-FPM, au cœur de l’optimisation du chargement de vos pages

Un accès à votre page 7 fois plus rapide avec la technologie FPM ! Avec cette optimisation, les éléments et instructions sont conservés en mémoire. Une mise en cache au niveau de votre serveur dans l’optique d’être réutilisé sans être régénéré pour une nouvelle requête.
En fait, pour chaque requête utilisateur, l’interpréteur PHP doit :

  • S’activer
  • Créer un cache mémoire
  • Appeler les éléments nécessaires en les trouvant
  • Vérifier si le code est valide
  • Et enfin, exécuter l’instruction

À l’aide de PHP-FPM, toutes ces opérations sont déjà connues et enregistrées par le serveur. Leur interprétation est donc bien plus rapide, tout comme la consultation de la page qui se trouve derrière.

PHP FPM

 

Implémenter PHP-FPM c’est aussi anticiper le référencement

Pour améliorer le référencement d’un site internet, il y a des facteurs concernant le contenu qui est sur la page et qu’il est important de travailler.
Cependant la vitesse d’un site est un facteur de plus en plus déterminant pour le référencement.

Pour Google, le fait d’avoir un site qui se charge lentement est pénalisant.

Le référencement ne consiste plus à positionner des < meta /> ou des microdonnées mais à effectuer un travail de fond.
Vous pouvez faire une analyse de votre site via les utilitaires de Google comme Page Speed

Php-FPM, une vision d’ensemble

  • Gestion avancée des processus avec stop/start doux (graceful) ;
  • Possibilité de démarrer des processus avec différents uid/gid/chroot/environment, écoutant sur différents ports et utilisant différents php.ini (remplace le safe_mode) ;
  • Journalisation stdout et stderr ;
  • Redémarrage d'urgence en cas de destruction accidentelle du cache opcode ;
  • Support de l'upload acccéléré ;
  • "slowlog" - journalisation des scripts (pas juste leurs noms, mais leur backtrace PHP également, utilisant ptrace ou équivalent pour lire le processus distant) qui s'éxecutent de manière anormalement lente ;
  • fastcgi_finish_request() - fonction spéciale pour terminer la requête et vider toutes les données tout en continuant d'exécuter une tâche consommatrice (conversion vidéo par exemple) ;
  • Naissance de processus fils dynamic/static ;
  • Informations sur la SAPI (similaire à mod_status d'Apache) ;
  • Fichier de configuration basé sur php.ini

Et surtout disponible pour usage public et sous licence GPL.

fonctionnement FPM

En conclusion, une interface plus efficace que son prédécesseur SAPI FastCGISi, une expérience accrue pour l’utilisateur, un risque d’abandon maitrisé. Et puis vous ferez plaisir à votre directeur de projet.


1Schneiderman (1994) recommande des réponses de l’ordinateur dans un délai limité à 2 secondes : 2 secondes étant la limite à laquelle les jugements des utilisateurs passent d’une majorité d’« acceptable » à une majorité d’« inacceptable ».

À lire aussi

Blog

SASS: Le préprocesseur productif