Livre Blanc
Améliorez les performances de vos projets web
Améliorer les performances web Livre Blanc
Alors que votre site web rencontre un véritable succès, vous constatez des lenteurs sur une page, une fonctionnalité, ou en cas de trop forte affluence.
Pour remédier à ces dysfonctionnements et améliorer les performances web de votre site ou de votre application, les solutions sont très nombreuses.
Ce livre blanc vous guide dans la mise en place d'une démarche structurée et rationnelle, clé essentielle pour optimiser les performances de vos projets web !
Dans ce livre blanc, découvrez :
- Comment mettre en place une démarche efficace d'amélioration des performances web
- Quels outils utiliser pour effectuer les différents diagnostics des performances web
- Comment améliorer la gestion de votre bande passante
- Comment optimiser les performances web de votre code
- Comment paramétrer au mieux votre base de données pour améliorer les performances web
Démarche et diagnostic pour améliorer les performances web
Quelques bonnes pratiques pour bien commencer
Pour mettre en place un plan d’amélioration des performances d’un site web ou d’une application, il est recommandé de :
1. Ne pas appliquer de solutions préconçues
2. Commencer dans l’ordre, généralement il y a un problème dominant
3. Mettre en place les solutions jusqu’au bout
4. Procéder de manière itérative
Une démarche d’amélioration des performances web en trois étapes
1. Constater le problème de performance
2. Reproduire le problème et trouver une solution
3. Mise en production et mesure de l’impact
Etablir les pistes d’amélioration
Les outils de surveillance des infrastructures de production permettent de déterminer quelle
ressource est liée à la dégradation des performances. Il peut s’agir d’une ressource matérielle : CPU, RAM, Bande Passante, Disques Durs, ou d’une ressource logicielle : nombre de fichiers ouverts, nombre de cœurs utilisés, nombre de connexions à la base de données.
Quels outils de diagnostic ?
Les outils d’analyse de performance côté serveur
Parmi ces outils d’analyse de performance :
- La commande TOP
- IO STATS
- IO TOP
- DSTAT
Les outils d’analyse de performance côté client
- WEBPAGETEST.ORG
- FIREBUG
- YSLOW ET PAGE SPEED
Les outils de monitoring
Pour accéder à l’historique des mesures de vos ressources, il est plus simple de se service d’outils de monitoring comme MUNIN ou NAGIOS.
Les différentes pistes pour améliorer les performances web
CPU & RAM : améliorer les performances web du code et les requêtes à la base de données
Si la piste s’oriente vers une activité critique de la RAM ou du CPU, c’est probablement parce que les processus Apache (PHP) ou que la BDD MySQL consomment une quantité trop importante de ces ressources. Il faudra alors identifier plus précisément la ou les causes de cette activité
trop importante.
Bande passante : optimiser les contenus
La première piste d’optimisation à explorer est la recherche du ou des éléments qui consomment de la bande passante.
Disque dur : analyser les requêtes MySQL
Si votre bande passante n’est pas saturée, il y a de grandes chances pour que votre disque dur soit le facteur limitant. Il est alors probable que MYSQL soit responsable.
Améliorer la gestion de votre bande passante
Si vous disposez d’un site internet à fort trafic ou d’un serveur avec une faible bande passante,
vous pouvez apporter des optimisations consistant à réduire le flux qui transite entre le site et
le navigateur du visiteur. Pour cela, plusieurs moyens sont envisageables.
Utiliser les systèmes de cache HTTP
Ces systèmes de cache permettent d’éviter de recharger des éléments déjà téléchargés.
Gérer la balise HTTP Entity Tag
La balise HTTP Entity Tag permet de ne pas télécharger 2 fois les mêmes fichiers.
Utiliser le module Apache mod_expires
Pour le serveur Apache, il existe le module mod_expires qui permet d’indiquer la date d’expiration d’une ressource au navigateur. Tant que cette date n’est pas atteinte, le navigateur utilisera directement les données qu’il a en cache. Il n’y a donc plus aucun temps d’attente.
Réduire le nombre de fichiers
Il est possible de regrouper les fichiers CSS ou JS en un seul, ou les images en une seule.
Réduire la taille des fichiers
Il s’agit par exemple de réduire la taille des images, ou de limiter le poids des fichiers.
Déporter des ressources
Si malgré toutes les modifications précédemment énumérées, les performances web ne s’améliorent pas, vous pouvez :
- déployer votre site web sur plusieurs noms de domaine
- stocker des pages sur le CDN (Content Delivery Network)
- utiliser l’ESI (Edge Site Includes), norme maintenue par W3C
Optimiser les performances de votre code PHP et JS
Optimiser les performances de votre code PHP et JS
Pour cela, plusieurs solutions visant à améliorer les performances web sont envisageables :
- Stocker les calculs en cache
- Configurer efficacement PHP et Apache
- Limiter la consommation de RAM/CPU
Optimiser votre base de données MySQL
Optimiser votre base de données MySQL
Trois types de solutions sont possibles :
- optimiser la gestion des index,
- agréger des données,
- améliorer les requêtes.
Revoir votre infrastructure
Revoir votre infrastructure
Les solutions pour améliorer les performances web qui sont associées à l’infrastructure matérielle sont nombreuses et la plupart consistent à augmenter le nombre de serveurs.
Voici les moyens pour améliorer les performances de votre application grâce à l’augmentation des capacités matérielles :
- Amélioration du hardware
- Clustering
- Cloud Computing