Charge serveur d’un site client lors d’une diffusion TV
Un de nos clients à eu la chance de pouvoir tourner des émissions de télévision avec RMC Découverte.
Etant les créateurs du site et les hébergeurs, nous avons donc du nous adapter. D’expérience, nous savons que ces évènements peuvent rapidement rendre un serveur indisponible.
Le contexte client
Le site du client est un site sous WordPress. Il comporte quelques pages éditoriales, un formulaire de contact, et une page d’accueil. Cette dernière contient un slider, des encarts de mise en avant et quelques textes de présentation.
Le site a été conçu et mis en ligne en 2018.
Le WordPress est à jour avec des extensions de base, sans forcément de cache activé.
Le site est hébergé sur un serveur mutualisé MGS via OVH.
Première diffusion TV en 2019
En 2019, notre client nous informé de la date de diffusion en prime time de son émission. Trois épisodes de 45 mn, diffusés de 21h à 23h20, avec un potentiel de 600 000 auditeurs.
Dès le début de la diffusion du premier épisode, notre serveur prend une charge importante de consommation de processeur. Le site rencontre des timeout moins de 10 mn après le début.
Là-dessus, nous intervenons en urgence pour trouver une solution.
Nos équipes lancent alors le transfert de la base de données sur une seconde machine pour limiter la charge processeur. Ainsi nous récupérons un peu de ressource sur le serveur.
Notre monitoring temps réel nous informe que nous dépassons les 1000 utilisateurs simultanés sur le site de notre client. Puisque le serveur est mutualisé, nous pouvons estimer à plus de 2000 utilisateurs simultanés sur notre serveur.
Nous activons le mode PHP-FPM qui permet de mieux gérer la charge au niveau du serveur Apache et permet de garantir que l’ensemble des demandes vont être traités.
Cela permettra de fixer le fonctionnement du site et du serveur sur l’ensemble du reste de la soirée.
Nos équipes ont réellement eu un coup de chaud sur cet évènement. Par conséquent, elles auront tiré un ensemble de leçon permettant de revoir l’ensemble du processus d’hébergement mutualisé.
Seconde diffusion TV en 2020
En 2020, rediffusion des trois premiers épisodes déjà diffusés en 2019, suivi de la mise en planning de la diffusion de trois nouveaux épisodes.
Notons que la charge prévisible est la même qu’en 2019.
La différence, c’est que nous avons revu l’ensemble de notre infrastructure entre 2019 et 2020, avec un serveur plus puissant, plus malléable, et des technologies ajoutées pour nous aider.
Serveur avec 8 coeurs à 3.1 Ghz, 16 Go de ram, disque SSD pour la base de données, mais surtout une configuration complètement optimisée :
- PHP-FPM optimisé pour prendre en charge un nombre important de requête simultanément
- Cache Code activé pour 15 mn pour mutualiser l’exécution du code PHP
- Ajout d’une extension de cache code HTML au niveau de WordPress et limiter les requêtes en base de données
Nous avons monitoré notre serveur sur l’ensemble de l’émission. Ainsi grâce au cache Code et au cache WordPress ont grandement participé à un temps de réponse optimisé.
Même si le serveur a rencontré une charge importante, globalement le temps de réponse était satisfaisant. A aucun moment le client n’a rencontré de problème pour accéder à son site Web.
En terme de valeur, ça donne quoi ?
Lors de la diffusion de 2019, nous avions une charge moyenne de 12 voir 13, ainsi on comprends bien qu’avec 8 coeurs et 16 Go de ram cela ne pouvait que présenter des latences.
En 2020, lors de la seconde diffusion, nous avons rencontré une charge moyenne qui n’a pas dépassé les 5. Pour ainsi dire, avec 8 coeurs et 16 Go, on avait encore de la marge.
Conclusion
A l’heure d’aujourd’hui, l’ensemble de nos machines ont hérité de ces configurations et de ces optimisations. Nos clients héritent ainsi de notre expérience sur l’ensemble de leurs solutions d’hébergement, que ce soit en mutualisé ou en dédié.