Maison > Article > Tutoriel CMS > Comment optimiser WordPress dans Nginx
Solutions au lent fonctionnement de WordPress sous Nginx :
Méthodes pour optimiser le lent fonctionnement de WordPress
1. Réduire le nombre de plug-ins Utiliser
C'est la première chose. La plupart des gens n'ont souvent pas suffisamment de connaissances en codage et il est impossible de coder chaque plug-in, c'est pourquoi la plupart des gens utilisent un grand nombre de plug-ins. La plupart des plug-ins effectuent des requêtes et des générations de données, ce qui prend du temps pendant le processus de génération de pages. Si votre hébergeur a des restrictions strictes (pour équilibrer l'utilisation des ressources), ce délai peut même devenir plus long. La réduction des plug-ins est l'une des méthodes d'optimisation très nécessaires
2. Réduire les requêtes HTTP
Chaque accès à JS, CSS et autres fichiers est une requête HTTP. Si le plug-in est moins utilisé, le nombre de requêtes HTTP sera naturellement moindre. La vitesse est naturellement plus rapide
WP déterminera l'utilisation du plug-in à chaque accès à la page. Laisser WP faire moins de jugements signifie effectuer moins de requêtes de données. Libérez son fardeau.
3. Choisissez les thèmes avec soin ou optimisez-les manuellement
De nombreux thèmes sont beaux mais pas très bons en optimisation, y compris divers JS, divers CSS, diverses images d'arrière-plan, etc. Diverses lignes vides et diverses redondances affectera la vitesse de chargement. Cependant, cela ne signifie pas que vous ne pouvez pas choisir un thème magnifique, mais que le thème doit essentiellement répondre aux exigences suivantes, ou vous pouvez le modifier manuellement pour répondre aux exigences suivantes :
Fusionner CSS et JS : Fusionner plusieurs CSS en 1.
Fusionner les images d'arrière-plan : utilisez les Sprites CSS pour fusionner la plupart des images d'arrière-plan en un seul fichier, ce qui réduit également les requêtes HTTP, réduit la taille du fichier et accélère le temps de rendu.
Réduisez les requêtes de données : ne faites pas de requêtes de données où le HTML peut être directement généré.
Placement raisonnable de JS et CSS : placez raisonnablement du JS et du CSS au bas de la page Web.
Optimisez l'image de fond du thème
4. Réduisez l'utilisation de ressources externes
Les ressources externes sont des ressources qui ne sont pas sur votre propre serveur. Utiliser trop de ressources externes rencontrera les problèmes suivants :
Le temps de résolution DNS devient plus long
Chaque nom de domaine nécessite une résolution DNS pour fonctionner correctement. Si le contenu du site Web doit charger les ressources de a.com, b.com, c.com et d.com en même temps, il faudra plus de temps pour résoudre le DNS de chaque nom de domaine séparément et établir un connexion. De même, si votre site est a.com et que des noms de domaine similaires tels que 1.a.com et 2.a.com sont chargés en même temps, le temps de résolution DNS sera également allongé. Il est impossible d’éviter complètement les ressources externes, mais elles peuvent être utilisées le moins possible.
La vitesse de chargement des ressources externes est incontrôlable
Cela concerne principalement le contenu de certains sites étrangers, comme fickr, twitter, etc. Pour des raisons bien connues, le chargement de leurs ressources ralentir considérablement la vitesse de chargement. Relativement parlant, les sites nationaux sont relativement rapides.
5. Réduisez les requêtes de base de données ou utilisez des plug-ins de mise en cache de base de données.
De nombreux plug-ins nécessitent des requêtes de base de données. La section ci-dessus sur les plug-ins et les thèmes mentionne également l'optimisation du code pour minimiser les requêtes de base de données. nombre de requêtes de base de données. Si vous ne comprenez pas, vous pouvez envisager d'utiliser le cache de base de données, qui peut mettre en cache le contenu des requêtes de la base de données
Il convient de noter que le plug-in de cache de base de données ne doit pas être utilisé avec le plug-in de cache statique -dans. Étant donné que le contenu est mis en cache et réduit les requêtes, leur utilisation conjointe entraîne une duplication du travail.
6. Utiliser le plug-in de cache statique de page
Les principes du plug-in de cache statique et du plug-in de cache de base de données sont similaires. Ils organisent tous deux le contenu à l'avance et génèrent. fichiers statiques. En cas de besoin, supprimez-le directement sans avoir à le rechercher ou à le générer, ce qui est une perte de temps. Un fichier statique mis en cache peut fondamentalement être équivalent à une image statique sans effectuer de contenu trop compliqué.
Il existe également d'autres méthodes d'optimisation, telles que l'utilisation de GZIP pour compresser des pages Web, l'optimisation des images d'articles de blog, l'utilisation du réseau distribué CDN pour accélérer les fichiers statiques, etc.
Installez le plug-in wordpress et vérifiez la raison de la lenteur
Après que ce site ait fonctionné pendant un certain temps, il faut jusqu'à 20 secondes pour y accéder la page d'accueil à chaque fois. Cela prend également 20 secondes pour accéder à une seule page d'article. Cela a pris 10 secondes, ce qui était tout simplement inacceptable. J'ai finalement décidé de le résoudre complètement.
En consultant une grande quantité d'informations, le système a été optimisé en se référant à la méthode de la section précédente.
1. Bloquez d'abord tous les plug-ins et constatez que le problème du système existe toujours et que la vitesse d'ouverture de la page d'accueil est toujours d'environ 10 secondes
2. Vérifiez l'état de la requête http via httpwatch et constatez que lorsque vous accédez à la page d'accueil, obtenez php Le temps de la page est de 9 secondes et le temps d'ouverture des images, js, css, etc. est d'environ 2 à 3 secondes, ce n'est donc pas dû à trop de requêtes http.
3. Ouvrez la requête lente de la base de données mysql et vérifiez l'état de la requête lente de la base de données. On constate que la plupart des requêtes sont relativement rapides. J'ai testé certaines requêtes et la vitesse est très rapide. Par conséquent, les facteurs liés aux bases de données peuvent également être éliminés.
Il n'y a vraiment pas d'autre moyen. Finalement, j'ai envisagé d'utiliser un plug-in wordpress pour étudier ce qui se passe sur la page d'accueil affichée, puis voir où cela prend le plus de temps, puis de l'optimiser lentement de manière fluide. de manière ciblée, donc je n’ai pas d’autre choix que de le faire.
Je suis allé sur le site Web WordPress et j'ai recherché le plug-in de débogage. J'ai beaucoup cherché et essayé plusieurs, mais aucun d'entre eux ne répondait à mes exigences. Enfin, j'ai trouvé un plug-in "Debug Queries". Je l'ai téléchargé et installé selon les anciennes habitudes de wp. Enfin, comme le montre l'image ci-dessous, cliquez sur le bouton d'activation pour activer le plug-in.
Après avoir installé le plug-in, ouvrez la page d'accueil du site Web et vérifiez l'effet et constatez qu'il n'y a aucun changement
Enfin, ouvrez un. page de l'article et trouvez Jiujiu en bas de la page de l'article. Ce que vous recherchez, l'image ci-dessous :
L'image a été marquée de différentes zones de couleurs
Zone rouge : heure : 0,000xxxx Requête requise Heure
Zone verte : Requête : requête SQL
Appel depuis : require, séquence d'appel xxx, etc.
Ensuite, voici les appels supplémentaires. La page montre quelles fonctions et processus d'appel sont appelés pendant ce processus d'affichage de la page, et le temps requis (le temps de requête de la base de données, en fonction de ce temps et le temps total que nous calculons le temps passé par PHP)
La dernière page est en bas Image :
La partie bleue : est le résumé du temps de requête des données pour cette visite. Vous pouvez voir que la requête a pris un total de 0,24 seconde. , et 83 requêtes ont eu lieu (cela montre également que les plug-ins wp entraînent des problèmes de performances, mais la quantité de données dans le système est actuellement faible, ce qui n'affecte pas les performances du système)
La partie verte : est un résumé de la durée globale de cette visite utilisateur. Les statistiques ici devraient inclure la durée globale de php.
La partie rouge : est la durée totale de cette visite
Partie violette : le pourcentage dépensé dans le programme php lors de cette visite. 97,5%
La partie jaune : est le pourcentage de temps passé sur la base de données MySQL lors de cette visite 2,5%
À partir des données ci-dessus, nous pouvons voir que lors d'une visite utilisateur de 10 secondes, Mysql ne prend que 2,5% du temps, il est donc certain que le problème d'accès des 10 secondes est causé par des liens autres que mysql, et cela devrait principalement être un problème avec php.
Redémarrez le processus php pour résoudre le problème lent
D'après l'analyse du département ci-dessus, nous pouvons déjà comprendre que le problème est probablement en php. ce n'est pas moi pour résoudre le problème d'expertise php, j'ai donc décidé de redémarrer le processus php pour voir l'effet.
1. Recherchez le processus php
Entrez la commande su –, passez au compte root
Entrez : commande ps -ef php, vérifiez le processus php, comme suit
D'après l'image, nous pouvons comprendre que l'identifiant du processus php est 26765 et que le nom du processus est php-fpm (il s'agit du programme php requis par nginx).
2. Trouvez le chemin de démarrage du processus php
Entrez la commande suivante lsof -p 8584 (8584 voici l'identifiant du processus php lors de la résolution du problème, le 26765 ci-dessus est toujours la recherche de l'article récent) ID du processus)
3. Fermez le processus
kill -9 8584 Fermez l'ancien processus php
Parfois, php s'ouvre. Il existe de nombreux processus difficiles à fermer. Vous pouvez utiliser la méthode suivante pour le faire
killall php-fpm (Ce site utilise cette méthode)
4. processus php
Entrez la commande suivante
/usr/sbin/php-fpm pour redémarrer le processus
Pour plus d'articles techniques liés à WordPress, veuillez visiter le wordpress tutorielcolonne pour apprendre !
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!