J'ai de sérieux problèmes pour déployer mon application Laravel. C'est un site d'actualité, rien de compliqué. La page d'accueil entière est mise en cache dans Redis au format HTML pur, et les résultats des requêtes sont également stockés dans Redis, l'utilisation de MySQL est donc très minime. L'application est entièrement fonctionnelle, nous avons donc décidé de la tester la nuit dans un environnement de production. Après le déploiement, nous avons remarqué que l'utilisation du processeur est passée à 90-100 % sur les 12 cœurs, de sorte que l'application fonctionnait très lentement, voire pas du tout. Il y a environ 400 utilisateurs et 17 à 20 requêtes par seconde.
Nous avons essayé de modifier les paramètres du serveur (par exemple PHP-FPM) mais sans succès. Nous avons effectué quelques tests avec Apache Benchmark et les résultats ont montré que l'utilisation du processeur était d'environ 80 à 100 % avec 10 utilisateurs simultanés. Ensuite, nous avons répété le test en utilisant un Laravel propre (sans notre application) avec des résultats similaires.
Ce que nous utilisons :
Nous avons remarqué que la mise en cache Nginx peut réduire l'utilisation du processeur dans des applications comme Wordpress ou Drupal. Mais je pense que Laravel ne l'utilise pas. Laravel doit-il être configuré pour utiliser le proxy inverse Nginx et le mettre en cache d'une manière spéciale ?
Je ne sais vraiment pas quoi faire. Quelqu'un a-t-il rencontré des problèmes similaires ?
Laravel fonctionne très bien sur Nginx. J'utilise Nginx pour exécuter mon application dans un conteneur sur Google Cloud sans aucun problème de performances.
Si vous souhaitez utiliser un proxy de rétention, celui-ci a fait l'affaire pour moi :
}