Conseils de trafic élevé pour WordPress

by Lucas Giza
1 an ago
72 Views

Avant d’ utiliser WordPress pour un site à fort trafic, vous devez vous assurer que celui-ci est prêt à gérer des volumes de trafic élevés. WordPress est certes capable de gérer de gros volumes de trafic, mais il y a des limites à ce que toute plate-forme de site Web peut faire par elle-même. Lorsque vous apportez des modifications à votre hébergement / serveur Web, à votre système de mise en cache ou à la taille des fichiers, vous devez vous assurer que votre site ne plante pas après quelques milliers de visites.

Voir aussi Optimisation WordPress

Limitations matérielles

Comme toute autre application Web, WordPress ne peut gérer autant de trafic que le matériel le supportant.

Deux obstacles principaux peuvent empêcher votre site de fonctionner sous un trafic important:

Limites du processeur

Des niveaux de trafic élevés peuvent imposer une grande demande aux ressources internes de votre serveur. Assurez-vous que votre serveur dispose de suffisamment de puissance de processeur et de ressources de mémoire pour répondre à ces demandes.

Les exigences par défaut pour WordPress sont énumérées ci-dessous. Cependant, des sites individuels peuvent nécessiter des ressources supplémentaires.

MySQL / MariaDB

Comme avec beaucoup de blogs et d’applications Web, WordPress dépend de MySQL ou de MariaDB pour stocker les données afin de produire une sortie. Chaque demande que WordPress adresse à MySQL / MariaDB, qu’elle soit à la fois en lecture et en écriture, crée une charge sur le serveur.

WordPress est optimisé en permanence pour minimiser le nombre de demandes de base de données nécessaires à un fonctionnement normal. Cependant, les pratiques de développement utilisées dans les plugins ou les thèmes peuvent augmenter la quantité d’utilisation de la base de données nécessaire à l’exécution d’un site donné. Dans des situations de trafic intense, de nombreuses connexions simultanées à la base de données peuvent entraîner une charge excessive sur le serveur. Une connexion incomplète à un serveur entraîne la réponse “Connexion expirée” dans le navigateur du visiteur.

Les taux de connexion MySQL / MariaDB peuvent être améliorés en ajustant les paramètres MySQL / MariaDB ou en fournissant plus de mémoire et de puissance de traitement au serveur surchargé. De plus, l’utilisation de la mise en cache des requêtes et d’une indexation appropriée peuvent aider à améliorer les performances de MySQL / MariaDB. Il n’y a pas de solution unique pour chaque cas, tous les sites fonctionnant différemment.

Une autre option à considérer pour les sites à fort trafic consiste à créer un esclave en lecture seule de votre serveur de base de données maître. La plupart des requêtes de la base de données effectuées par votre site WordPress étant des requêtes SELECT (ou en lecture), vous pouvez les séparer des autres requêtes UPDATE ou INSERT en utilisant un plugin de gestion de base de données tel que HyperDB, écrit par l’équipe centrale de WordPress.

Service Web

WordPress est une application indépendante du serveur Web, ce qui signifie qu’il peut s’exécuter sur de nombreuses plateformes.Apache et Linux sont les plates-formes les plus robustes pour exécuter WordPress, mais tout serveur prenant en charge PHP et MySQL ou MariaDB le fera.

Assurez-vous que votre hôte dispose de la version la plus récente et la plus stable de ces plates-formes afin de créer un environnement solide dans lequel exécuter WordPress.

La méthode choisie pour exécuter PHP – le langage qui interprète le code WordPress – peut également affecter les performances de votre serveur. En mode CGI, le serveur crée une nouvelle instance du programme PHP pour chaque fichier PHP demandé par un visiteur. En mode de module partagé (ou ISAPI), chaque requête PHP est gérée par une seule instance de bibliothèque.

Il existe également de nombreuses idées fausses sur les avantages des implémentations Apache 2 multithreads. En général, les performances de Prefork d’Apache 2 avec mod_php sont les plus stables. Chaque méthode présente des avantages et des inconvénients – lors du choix de la méthode pour votre serveur, n’oubliez pas de garder à l’esprit le trafic et ses demandes sur le serveur, ainsi que de lancer vos propres tests avant le déploiement.

Limites du réseau

Une connexion Internet lente peut limiter le nombre de pages que votre serveur peut servir dans un laps de temps donné.

Le fournisseur de réseau de votre serveur (votre hôte ou votre FAI ) connectera généralement votre serveur à son réseau interne via un adaptateur Ethernet. Les adaptateurs fonctionnent généralement à certaines vitesses maximales standard, généralement 10 Mb / s, 100 Mb / s ou 1 Gb / s. Votre serveur ne peut pas transférer de fichiers plus rapidement que la vitesse de transmission de cette connexion réseau. En outre, de nombreux autres facteurs peuvent affecter le taux de transfert réel détecté par votre serveur.

Premièrement, il est important de noter que bon nombre de ces chiffres (en particulier la vitesse de la carte réseau de votre serveur) sont théoriques. En pratique, votre serveur ne transférera jamais de fichiers au débit maximal spécifié par l’adaptateur. En effet, outre les données effectivement transférées, le serveur envoie et reçoit également les informations de routage nécessaires à la transmission des données aux visiteurs de votre site. En raison de cette “surcharge réseau”, seule une fraction de la bande passante complète du serveur est disponible pour transférer des fichiers.

Deuxièmement, votre serveur est probablement connecté à divers périphériques dans les installations de votre fournisseur de réseau. Ces périphériques peuvent également limiter le “monde réel” les vitesses que votre serveur peut atteindre. Ils sont en place parce que votre fournisseur de réseau doit répartir sa bande passante limitée sur de nombreux serveurs sur son site et que toute la bande passante doit être partagée.

Certains fournisseurs de réseau vous autorisent à “envoyer en rafale” des données – dépasser temporairement une limite de vitesse de transfert prédéfinie – dans les cas où la demande de contenu de votre site est particulièrement élevée. Le matériel du fournisseur de réseau est conçu pour savoir quand cela est nécessaire. Certains fournisseurs facturent des frais supplémentaires pour cette fonctionnalité, d’autres non, et d’autres n’offrent pas cette fonctionnalité du tout. Contactez votre fournisseur de services pour savoir si cette fonctionnalité est disponible.

Vitesses de transfert réseau utilisées

Pour déterminer pourquoi la bande passante de la connexion est importante pour un site à fort trafic, examinons le calcul.

Supposons que votre site reçoit 100 000 visites en une journée. Pour les besoins de ce calcul, nous dirons qu’un “succès” est un seul transfert de données, qu’il s’agisse d’un fichier unique ou d’une page entière et de ses fichiers de support. En moyenne, 100 000 visites par jour équivalent à 1,16 par seconde.

Supposons également que le hit moyen génère 160 Ko de données transférées; HTML, images, CSS, fichiers téléchargés, etc. Cela signifie que votre site transfère 190 Ko de données toutes les secondes ( 160 Ko / hit * 1.16 hits / s ). Le total, 190 Ko / s, équivaut à environ 1,5 Mb / s de débit soutenu. (Notez que KB = kilo octets et Mb = méga bits . La plupart des vitesses de réseau sont calculées en bits par seconde, alors que la taille des fichiers est mesurée en octets .) De nombreux fournisseurs de réseau fixent le taux de transfert d’un site à environ ce niveau; certains plus élevés, d’autres plus bas. Toutefois, ce taux constant ne sera maintenu que si chaque utilisateur individuel visite le site à intervalles réguliers.

Généralement, plusieurs utilisateurs à la fois accèdent à votre site. Par ailleurs, il peut y avoir des périodes où personne n’accède à votre site. Si 10 personnes entrent soudainement sur le site en une seconde et que le taux de réussite est maintenu sur une longue période – ce qui n’est pas rare pour un site à fort trafic – vous auriez alors besoin d’une connexion de 15 Mb / s pour suivre le rythme des connexions simultanées .

Si la vitesse théorique maximale de votre carte réseau n’est que de 10 Mb / s, la demande a déjà dépassé la capacité. Dans ce cas, le réseau est la source de vos problèmes de trafic, plutôt que WordPress.

Il n’est pas nécessaire de recevoir des centaines de milliers de hits pour rencontrer ce problème. Maintenir ce taux de connectivité pendant une heure seulement ne génère que 36 000 occurrences. Si les visiteurs de votre site ont tendance à préférer une heure de la journée (ou qu’un script de commentaire automatisé tente d’accéder à votre système plusieurs fois de suite en déposant des commentaires), vous risquez de vous retrouver avec de nombreuses demandes abandonnées.

Une connexion de 100 Mb / s peut gérer jusqu’à 70 connexions simultanées au même taux de téléchargement, mais la plupart des fournisseurs de réseau n’offrent pas la bande passante nécessaire pour utiliser pleinement cette vitesse sur leurs plans d’hébergement partagé. Vous devrez probablement payer un supplément pour obtenir ce type de bande passante depuis votre connexion.

Dépassement des transferts

L’hébergement de fichiers volumineux tels que des vidéos, des podcasts ou de grandes archives photo peut vous exposer à un risque de dépassement des transferts. Le plan d’hébergement stipule souvent une quantité maximale de données pouvant être transférée dans un laps de temps donné. Une fois que votre compte a atteint ce montant, toute donnée supplémentaire transférée vous sera facturée. Selon l’hôte, cela peut aller jusqu’à 1 $ / Mo.

À ce tarif, un seul téléchargement de 20 Mo pourrait vous coûter 20 $ de plus sur votre facture d’hébergement!

Habituellement, plus la limite de transfert est élevée, plus votre plan d’hébergement sera coûteux. Certains services d’hébergement proposent des forfaits sans limitation de transfert. Celles-ci peuvent être assez coûteuses, mais certainement moins chères que de payer pour les excédents de transfert sur un site à fort trafic.

Une méthode répandue pour optimiser les performances de votre site tout en évitant les surcharges consiste à utiliser un réseau de diffusion de contenu (CDN) avec votre site. Il existe de nombreuses solutions abordables qui vous aident à éviter les limitations de bande passante mises en place par certains fournisseurs d’hébergement. En savoir plus sur les CDN et le déchargement ici .

Exigences typiques par référence

Cet espace est réservé à l’affichage des capacités d’une configuration de serveur typique dans des conditions de charge stressantes. Comparer la configuration d’un service d’hébergement particulier à ces tests de performance peut vous aider à avoir une meilleure idée des capacités du serveur que vous envisagez.Notez que tout serveur que vous choisirez sera probablement au moins légèrement différent des tests de performances présentés ici.

Je travaille toujours sur l'obtention de points de repère.

Solutions à fort trafic

À l’instar du boeuf de Kobe , WordPress est à son meilleur lorsqu’il est élevé dans les conditions appropriées. Si vous constatez que le trafic est important, les performances de votre blog sont limitées.

Architecture orientée service

Si vous vous préparez à faire face à un trafic réellement intense (ou si vous l’avez déjà expérimenté et réclamez de l’aide), vous devez envisager de fractionner votre application WordPress en autant de couches distinctes que possible et de les servir indépendamment. Au lieu d’une seule machine hôte exécutant votre serveur Web et MySQL / MariaDB, la vitesse et la résilience de votre site seraient facilitées par l’exécution de couches simultanées. Voici un exemple:

  • Serveur (s) Web frontal (s) Apache2 / nginx: pour gérer le rendu des pages et l’administration du site.
  • Serveur de base de données MySQL / MariaDB – ou maître / esclave, utilisant un réplica en lecture.
  • Couche proxy HTTP Varnish / nginx – pour traiter les demandes initiales des utilisateurs.
  • CDN ou serveur d’images – pour servir des fichiers multimédias compatibles avec votre site.

Non seulement votre site sera en mesure de prendre plus de charge dans cette architecture, mais vous pourrez alors identifier les goulots d’étranglement ou les points de tension qui doivent être traités spécifiquement. Peut-être que votre base de données MySQL / MariaDB fonctionne mal ou qu’Apache2 a besoin de plus de temps processeur, etc. Sous la bonne conception, ces couches peuvent également être redimensionnées et intégrées au trafic.

W3 Total Cache

W3 Total Cache (W3TC) est la dernière génération de plug-ins de performance WordPress, combinant les recherches des autorités de développement Web pour fournir une expérience utilisateur optimale aux sites WordPress. W3TC est unique dans sa capacité à optimiser les performances côté serveur et côté client, en ajoutant des fonctionnalités autrement indisponibles en mode natif:

  • Mise en cache de pages: W3TC contribue à réduire le temps de réponse en créant des versions HTML statiques de pages, permettant ainsi aux serveurs Web de les servir sans invoquer PHP. Il met automatiquement à jour le cache lorsque des commentaires ou des pages sont modifiés.
  • Minification: supprime les caractères inutiles des fichiers HTML, CSS et JavaScript, puis les combine avant d’appliquer la compression HTTP aux fichiers mis en cache.
  • Mise en cache de base de données: les requêtes de base de données (objets) sont également mises en cache, ce qui permet à de nombreux sites de réduire le temps nécessaire à la génération de nouvelles pages. Ceci est particulièrement utile pour les sites qui reçoivent beaucoup de commentaires.
  • En-têtes: W3TC gère les en-têtes (balise d’entité, contrôle du cache, expire) qui contrôlent la mise en cache des fichiers dans les navigateurs Web, réduisant ainsi la charge du serveur et améliorant les performances perçues de l’utilisateur.
  • Réseau de distribution de contenu (CDN): L’utilisation d’un CDN vous permet de ” décharger ” des ressources de votre compte d’hébergement. Le W3TC déplace les demandes d’images, de CSS, de JavaScript et d’autres fichiers statiques vers un réseau de serveurs hautes performances. Le serveur le plus proche du visiteur est automatiquement utilisé pour télécharger les fichiers, offrant les téléchargements les plus rapides possibles.

W3TC peut être utilisé pour optimiser WordPress dans des environnements mono et multi-serveurs via un hébergement partagé ou dédié.

WP Super Cache

WP Super Cache est un plugin de mise en cache de page statique pour WordPress. Il génère des fichiers HTML servis directement par Apache sans traiter de scripts PHP relativement lourds, ce qui vous permet de gagner beaucoup de vitesse sur votre blog WordPress.

WP Super Cache est une fourchette de WP Cache de Ricardo Galli Granada. WP Cache met également en cache vos pages de blog WordPress et les diffuse sans accéder à la base de données. Cependant, son utilisation n’est plus recommandée, car WP Cache a toujours besoin du chargement du moteur PHP pour pouvoir servir les fichiers mis en cache.

Cependant, WP Super Cache résout ce problème en permettant de générer et de servir des fichiers HTML sans jamais appeler une seule ligne de PHP. L’utilisation de WP Super Cache permet à votre serveur de servir les pages HTML en cache à la même vitesse que celle utilisée pour les fichiers graphiques classiques. Envisagez WP Super Cache si votre site peine à faire face au nombre de visiteurs quotidien ou s’il apparaît sur Digg.com , Slashdot.org ou sur tout autre site populaire.

Cache vernis

Varnish Cache fonctionne de concert avec W3 Total Cache pour stocker des pages prédéfinies en mémoire et les servir rapidement, sans nécessiter l’exécution de la pile Apache, PHP, WordPress.

Alors que Varnish donne d’excellentes performances, les administrateurs doivent savoir que Varnish est “allergique” aux cookies. S’il est déployé avec les paramètres par défaut, Varnish ne reconnaîtra et n’acceptera pas les cookies WordPress normaux pour les utilisateurs connectés, etc. Le fichier de configuration doit donc être écrit de manière à ce que la présence de cookies WordPress déclenche Varnish pour qu’il ignore le cache et envoie la demande au serveur. serveur web directement. En effet, cela signifie que les utilisateurs connectés (administrateurs de site, auteurs, contributeurs) adresseront des requêtes directement au serveur Web, tandis que les utilisateurs publics (anonymes) formuleront leurs requêtes à partir du cache Varnish. Une recherche rapide dans GitHub devrait fournir une variété de fichiers de configuration de la VCL spécialement conçus pour fonctionner avec WordPress, tels que l’exemple WordPress VCL de DreamHost .

Sachez que Varnish, comme la plupart des autres mécanismes de mise en cache, servira le même contenu à partir du cache jusqu’à son expiration. Cela signifie que les administrateurs devront effacer le cache lorsque du nouveau contenu est ajouté ou installer un plug-in de gestion tel que Varnish HTTP Purge , qui réinitialise le cache de toutes les pages ou de toutes les publications mises à jour, et offre aux administrateurs une interface simple le cache lorsque des modifications de thème ou de menu ont été effectuées.

Désactiver ou limiter les plugins et les graphiques WordPress

Vous remarquerez peut-être davantage les effets d’un trafic élevé si votre blog contient un grand nombre d’éléments de code et de conception.

Par exemple, supposons que la page d’accueil de votre blog appelle 8 graphiques pour créer le “look” du design de votre blog. Ajoutez ce numéro aux différents fichiers de modèle WordPress nécessaires à la création de votre page. Cela inclut au minimum l’en-tête, la barre latérale, le pied de page et la zone de contenu de publication, ce qui crée quatre autres “appels” aux fichiers de votre site. Pour 100 visiteurs, ces fichiers sont chargés 1 200 fois. Pour 1000 visiteurs, ces fichiers sont chargés 12 000 fois, ce qui augmente la bande passante et l’activité du serveur.

Les plugins WordPress sont aussi des fichiers “appelés” par votre thème WordPress. À leur tour, ces plugins interrogent votre base de données pour générer les informations sur votre blog. Plus il y a de plugins WordPress, plus il y a de requêtes dans votre base de données. Combinez tous ces fichiers d’accès et requêtes de base de données avec une augmentation exponentielle du nombre de visiteurs et vous obtenez une demande importante sur votre site.

Vous pouvez réduire le nombre de fichiers consultés et de requêtes dans votre base de données pendant les périodes de fort trafic en:

  1. Limiter le nombre de graphiques sur votre blog. Vous pouvez le faire en modifiant les fichiers de feuilles de style et de modèles de votre thème WordPress.
  2. Désactiver temporairement quelques plugins WordPress. Parcourez votre liste de plugins WordPress pour voir s’il existe des listes sans lesquelles vous pourriez vivre sans un jour ou deux.

Limitez au maximum l’accès aux fichiers et à votre base de données. Réactivez et restaurez ces fonctionnalités une fois que le volume du trafic est réduit.

Nouvel Hébergement

Aussi pénible que cela puisse être, vous pourriez avoir simplement besoin d’un serveur plus puissant.

Voici un aperçu simple des étapes de mise à niveau pour un site qui rencontre des problèmes de trafic élevé. Si vous rencontrez des problèmes avec:

  • Hébergement partagé: essayez de passer à l’hébergement dédié virtuel.
  • Hébergement dédié virtuel: essayez de passer à l’hébergement dédié.
  • Hébergement dédié: essayez de mettre à niveau vers un serveur dédié plus puissant.
  • Hébergement dédié haut de gamme: discutez avec votre fournisseur d’hébergement de plusieurs serveurs à charge équilibrée.

Dans tous les cas, votre serveur est aussi capable que votre fournisseur de réseau. Si votre fournisseur ne fournit pas la bande passante dont vous avez besoin, vous devrez peut-être négocier une augmentation ou trouver un autre fournisseur capable de vous fournir la bande passante nécessaire à votre trafic.

WordPress » Erreur

Une erreur critique est survenue sur votre site.

En apprendre plus sur le débogage de WordPress.