Wordcamp US Talk: redimensionner les sites WordPress dynamiques

Le week end dernier, Aaron Edwards, notre directeur technique, a parlé à wordcamp US de son expérience dans la redimensionnement de sites Web dynamiques (en particulier edublogs, campuspress et wpmu dev). avez des questions sur Scaling ou même sur le rôle damp;rsquoAaron en tant que CTO, laissez un commentaire à la fin de lamp;rsquoarticle. Faites défiler vers le bas vers la diapositive de présentation. En général, lorsque participez à des réunions de performance dans des événements comme wordcamp, les conférenciers discutent plus de lamp;rsquoavant du site, de lamp;rsquoaccélération, des plug ins de cache, de la configuration, etc., en mettant lamp;rsquoaccent sur la mise en cache de lamp;rsquoensemble de la page. Le problème est que si avez un site dynamique et que lancez bbPress, electrommerce, WordPress multisite, buddypress ou même un site membre, pratiquement n’importe quel site auquel beaucoup de vos visiteurs peuvent accéder, les utilisateurs sautent presque toujours la mise en cache de page, ce qui ne aide pas.
Aujourdamp;rsquohui, je vais donc discuter de la correction du temps de génération de la page dans le cadre de la pile. visualisez une demande normale pour un site Web au moment de la connexion, elle peut ressembler à ceci: souhaitez en savoir plus sur les conseils de Google pages vues Vous verrez cette grande barre, qui attend que votre page soit générée et envoyée à , puis votre navigateur peut toutes les ressources et choses, donc il suffit de discuter du temps de génération de cette page et de la façon dont nous pouvons lamp;rsquoaméliorer qui peut avoir un impact énorme sur votre site, en particulier en ce qui concerne les sites dynamiques.
Google recommande un temps de génération de page maximum de 200 millisecondes, mais voulez vraiment le moins possible. Cependant, la mise en œuvre de ce drapeau peut être un énorme défi lorsque avez beaucoup de grands plug ins et sujets qui exécutent votre code tout le temps. Q
Lorsque jamp;rsquoai commencé à écrire cette présentation, jamp;rsquoai pensé à discuter de lamp;rsquoextensibilité entre plusieurs serveurs et différentes architectures, mais damp;rsquoaprès mon expérience, cela ne résout pas vraiment les problèmes de performance, qui se multiplieront si ne résolvez pas damp;rsquoabord les problèmes de performance sous jacents.
Pour résoudre les problèmes potentiels, si regardez le temps normal de génération de page, pouvez le diviser en blocs, comme le montre la figure ci dessus. La plus grande partie est généralement votre base de données. Camp;rsquoest le plus gros goulot damp;rsquoétranglement que rencontrez sur le site. Pour résoudre les problèmes de base de données, devez optimiser le contenu autant que possible et voir les requêtes. Il y a un excellent plug in appelé Query Monitor qui permet damp;rsquoanalyser toutes les requêtes que le plug in exécute et de déterminer namp;rsquoimporte quelle zone de problème où pouvez ajouter des index ou supprimer complètement le plug in.
Il est important damp;rsquooptimiser la configuration MySQL. La mise en cache des requêtes est une chose importante. Étonnamment, tant de gens namp;rsquoont pas activé la mise en cache des requêtes dans MySQL, parce que si avez beaucoup de tables avec beaucoup de lectures, cela peut être très utile. MySQL Tuner est un petit script exécutable qui analyse votre configuration et fournit des conseils sur la façon damp;rsquoaméliorer la configuration de votre base de données. De plus, la conversion de vos tables en InnoDB – surlignez seulement les tables, pas toutes, car si exécutez une grande installation WordPress multisite, comme nous l’avons fait pour edublogs, la conversion de toutes vos tables en InnoDB peut causer de gros problèmes – croyez moi, nous l’avons déjà fait. Par conséquent, nous avons tendance à nous concentrer davantage sur les tables avec de nombreuses demandes damp;rsquoécriture, de sorte que les tables globales sur les installations Multi sites.
Mariadb est une alternative à MySQL. Camp;rsquoest en fait une fourche mysql avec le dernier Code. Tu peux.
Les performances augmentent de 10 à 20% après le passage à mariadb. avez la chance de lamp;rsquohéberger sur Amazon, Aurora est un nouveau service qui est une alternative à MySQL, avec une amélioration de 2 3 fois de la vitesse et de lamp;rsquoétalonnage de MySQL, ce qui est incroyable. Enfin, la meilleure façon d’optimiser le temps passé dans la base de données est de ne jamais laisser la requête arriver en premier, c’est là que le cache d’objets WordPress fonctionne. En général, PHP communique directement avec MySQL à une vitesse lente, mais si configurez le cache damp;rsquoobjets, pouvez mettre en cache beaucoup de requêtes et de requêtes en mémoire beaucoup plus rapidement.
Certains plug ins de cache damp;rsquoobjets sont memcache et redis. Ce sont mes recommandations parce quamp;rsquoelles sont basées sur la mémoire et si étendez plusieurs serveurs, elles peuvent partager le même cache. essayez damp;rsquoeffectuer des opérations basées sur des fichiers ou APC (au lieu du cache PHP), parfois les opérations basées sur des fichiers sont plus lentes que de ne pas les utiliser du tout, donc je recommande fortement de le faire. Optimisation PHP: une autre chose sur laquelle devriez concentrer dans lamp;rsquoanalyse de code est que PHP passe une partie de son temps à générer des charges de page sur votre site. Lamp;rsquoune des choses les plus importantes que pouvez faire est damp;rsquooptimiser votre code.
Pour les débutants, il y a un excellent plugin appelé P3 (plugin performance profiler) qui permet de demander:
Optimisation
Voici quelques uns des problèmes que jamp;rsquoai rencontrés lors de lamp;rsquoanalyse du Code PHP: requêtes inutiles et non optimisées pouvez économiser beaucoup de temps en mettant en cache de nombreuses requêtes dans le cache damp;rsquoobjets. Sur le site de développement wpmu, nous avons lancé de nombreux plug ins sur de grands sites. Nous avons passé beaucoup de temps à essayer damp;rsquoutiliser le plug in damp;rsquooptimisation de cache damp;rsquoobjets. De plus, trouvez le plug in statistique et damp;rsquoautres plug ins pour la redirection des journaux. Souvent, ils essaient damp;rsquoécrire dans la base de données chaque fois que la page est chargée: Camp;rsquoest un grand tabou parce que si votre site est très fréquenté, cela ralentit considérablement votre site.
Lorsque PHP a besoin damp;rsquoinvoquer une API externe, comme Google ou Facebook, il doit attendre la réponse de ces services avant de pouvoir terminer la construction de la page. le Service API fonctionne lentement, il ralentit également votre site et samp;rsquoarrête même lorsque le service tiers ne fonctionne pas. Par conséquent, devez assurer damp;rsquoutiliser de faibles temps damp;rsquoarrêt et de les mettre en cache le plus longtemps possible. Ne les cachez pas dans les transitoires, même si Codex dit quamp;rsquoils existent pour cela, parce que si le transitoire expire et que le Service API samp;rsquoarrête, il fera un appel externe à chaque fois que la page est chargée et bloquera votre site parce quamp;rsquoil a déjà fait cela avec edublogs. Alors fais attention.
Nettoyer complètement les règles de réécriture certains plug ins essaient damp;rsquoeffacer les règles de réécriture chaque fois quamp;rsquoune page est chargée. Il samp;rsquoagit toujours damp;rsquoun problème universel. Accès direct au système de fichiers toute tentative damp;rsquoécriture directe au système de fichiers ralentit le site. Une autre façon damp;rsquoaccélérer PHP est de travailler directement sur lamp;rsquoarchitecture. Ensuite, utilisez nginx, ce qui est fortement recommandé. Je namp;rsquoutilise pas Apache depuis cinq ans parce quamp;rsquoil doit charger PHP pour chacun damp;rsquoeux
Chargement de page, même pour charger CSS, Javascript, etc. Nginx ne transmet que vos requêtes dynamiques à PHP, ce qui donne suffisamment damp;rsquoespace pour votre cerveau. exécutez plusieurs sites, assurez damp;rsquoutiliser le cache CDN ou varnish avant le fichier média. Beaucoup de gens ne le savent pas, mais votre téléchargement est en fait réécrit par PHP dans plusieurs sites ce qui est étrange mais si pouvez empêcher ces demandes damp;rsquoatteindre PHP par les médias, cela donnera beaucoup damp;rsquoespace. De plus, assurez damp;rsquoutiliser la dernière version de PHP, comme 5.5, 5.6, car pouvez obtenir une augmentation de vitesse de 20% par rapport à certaines versions plus anciennes, comme 5.2. Enfin, si namp;rsquoutilisez pas opcache, devenez fou parce quamp;rsquoil est construit en PHP. Il suffit de lamp;rsquoactiver et il double la vitesse de votre demande. Passer à hhvm ou php7 pourriez envisager de passer à php7, qui namp;rsquoa été publié que récemment. Je suis heureux de commencer à le publier bientôt sur le développement damp;rsquoedublogs et wpmu ainsi que sur certains des sites Web que nous hébergeons. Il montre 2 3 fois plus rapide que les versions précédentes de PHP, ce qui est une grande chose. Par conséquent, si possible, envisagez de changer le serveur pour utiliser la dernière version de PHP. Une fois quamp;rsquoun site en temps réel est installé et fonctionne à grande échelle et quamp;rsquoun grand nombre de demandes sont exécutées, une autre chose que devriez faire est de le surveiller. Pour notre site, nous utilisons statsd, un excellent projet Open source pour lamp;rsquoéquipe etsy. Nous l’utilisons avec le plugin wordpress personnalisé que j’ai écrit appelé le client statsd WordPress. Il permet d’analyser votre code et ce qui se passe sur le site WordPress sans délai. Les développeurs namp;rsquoont quamp;rsquoà insérer une ligne de code namp;rsquoimporte où sur la pile pour voir combien de temps une requête particulière prend ou combien de fois la requête est déclenchée

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

ContactPress Supported By WordPress Plugins