Cet article détaille l'optimisation d'une application de blog de galerie multi-images, réduisant son temps de chargement initial de 28 secondes de 28 secondes à 0,7 seconde rapide. Le parcours d'optimisation se concentre sur la génération de miniatures à la volée.
Après optimisation, des vitesses prêtes à la production ont été réalisées:
Améliorations de clés:
pm
de PHP-FPM (Gestionnaire de processus) a eu un impact significatif sur les performances. Alors que pm=static
a consommé plus de ressources, il a éliminé les frais généraux de frai, ce qui entraîne une augmentation des performances de 20%. Dépannage:
Si l'utilisation de Homestead s'est améliorée sur Windows, des problèmes de dossiers partagés peuvent survenir. Ajouter type: "nfs"
au dossier dans Homestead.yaml
résout souvent ceci:
Exécutez vagrant up
avec les privilèges administratifs si les problèmes persistent. Avant ces correctifs, les temps de chargement étaient de 20 à 30 secondes par demande:
Méthodologie de test:
Les tests de charge des locustes ont été utilisés avec 100 utilisateurs simultanés. La pile du serveur comprenait PHP 7.1.10, Nginx 1.13.3 et MySQL 5.7.19 sur Ubuntu 16.04. NGROK Connexions HTTP tunnelles pour les tests via une URL statique.
PHP-FPM et pm
Réglage:
Le paramètre pm
dans /etc/php/7.1/fpm/pool.d/www.conf
contrôle la gestion du processus PHP-FPM. Les modes dynamic
, ondemand
et static
ont été testés. static
a fourni les meilleures performances mais au prix d'une utilisation plus élevée des ressources.
Nginx et FastCgi Caching Configuration:
La mise en cache Nginx a été implémentée en utilisant proxy_cache
pour les actifs statiques et fastcgi_cache
pour le contenu dynamique. Cela a considérablement réduit les temps de réponse et les taux d'échec.
Les tests de Pingdom ont confirmé les améliorations substantielles des performances:
Conclusion:
Cette optimisation a démontré l'impact significatif du réglage côté serveur à l'aide de la mise en cache NGINX et de la gestion stratégique des processus PHP-FPM. Les résultats mettent en évidence le potentiel de gains de performances substantiels même avec des ressources de serveur modestes. Un fichier HAR du test final est disponible (non inclus ici). D'autres stratégies d'optimisation sont les bienvenues.
(L'image initiale reste en haut, et toutes les images suivantes maintiennent leur ordre et leur format d'origine.)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!