Accélérer MediaWiki lent: Optimisation des performances

Très lent MediaWiki est un gros problème! performances MediaWiki peut être frappé par load.php lent et fichiers index.php. Accélérer MediaWiki pour optimiser la vitesse de chargement.

A+ A-

Je lance un site Web populaire basé sur MediaWiki. Pour deux dernières années, il a été de me donner des cauchemars à cause de sa lenteur. Malgré tous mes efforts, je ne suis pas en mesure de stabiliser le serveur web et attaquer MediaWiki lente. La plupart du journal du serveur de temps serait blâmer load.php et scripts index.php pour provoquer l' accident. Je l'ai fait tout à fait un peu de recherche et maintenant que, finalement, mon site est en bien meilleure forme, je pensais à écrire mes expériences pour vous tous. Ici , je vais écrire sur un certain nombre de conseils que j'ai eu à partir d' Internet et de leur efficacité dans l' amélioration de la performance MediaWiki.

Alors que je faisais des recherches sur la façon d'améliorer la performance de MW, je suis tombé sur un certain nombre de forums où les gens parlaient de leurs MediaWiki liés les problèmes et les solutions possibles. Cependant, une chose que je trouve presque toujours absent de ces descriptions problème / solution était les détails techniques sur le site Web qui a été confronté à des problèmes. Nous devons comprendre que les différents environnements techniques ont besoin de solutions différentes. Par conséquent, la présentation de la solution sans donner de contexte peut ne pas être d'une grande utilité.

Donc, tout d'abord, permettez-moi de vous parler du site que j'ai pour vous permettre de comparer votre propre site web, ses problèmes, et l'efficacité des solutions possibles.

Les détails de mon site

HARDWARE: VPS avec environ 1800MB RAM
LOGICIEL: Suite est l'environnement logiciel de mon serveur MediaWiki:

  • Utilise UTF-8 charset pour MediaWiki, ainsi que la base de données MySQL. Il est un site Web non-anglais
  • Base de données MySQL utilisation innodb pour la plupart des tables, des tables sont MyISAM
  • A l'heure actuelle sur la base de MediaWiki 1.20.3 (cependant, le problème de la lenteur a commencé quand il est exécuté sur MW 1,14)
  • la version PHP est 5.3.23 (cgi-fcgi)
  • version de MySQL est 5.1.69-cll
  • Apache version 2.2.24 est

Mon site web a plus de 60.000 pages, près de 150.000 visiteurs par mois et environ 2 millions de pages vues par mois. Donc, vous pouvez envisager un site modérément élevé de trafic.

Les symptômes du problème de mon site

1) la performance lente. Pages prendra 10 secondes à plus de 2 minutes pour charger. Journal des erreurs de serveur me dit souvent que les load.php et les scripts index.php prenaient trop de temps pour terminer. Et cela crée un goulot d'étranglement.

2) Instable. Serveur Web va souvent vers le bas et deviendra aussi lent que mort (servant seulement 2-3 pages en une minute). Server aller dans ce mode insupportablement lent pendant 15-20 minutes, puis à nouveau le printemps à la vie (desservant 20-30 pages par minute).

3) l' échec de l' environnement. Je souvent obtenir email de l' hôte que MySQL a échoué ou Apache est écrasé ou d'autres services a baissé.

Préparez-vous à la «Mission Speed-up MediaWiki"

les outils suivants seront très pratique alors qu'il enquêtait sur la cause de votre problème et la mise en œuvre de solutions serveur.

Conseils pour augmenter les performances MediaWiki.

Conseils pour augmenter les performances MediaWiki.

Utilisez Google Anayltics: analyse en temps réel fournies par Google est une bénédiction. Cela vous montre que, à l'heure actuelle, combien de personnes sont connectées à votre site Web, combien de pages sont livrés par minute et par seconde. Cette information est extrêmement pratique dans votre procès et rond d'erreur que vous serez en mesure de voir comment les diverses mesures prises par vous ont affecté le trafic sur votre site web.

Utilisez un VPS: Si vous avez un grand site de manière significative MediaWiki et si vous pouvez vous le permettre -Atteindre pour un serveur privé virtuel (VPS) à la place d'un serveur partagé. Sur un VPS, vous pouvez faire beaucoup de choses assez facilement. Vous devriez obtenir l'accès à des interfaces comme cPanel, WHM et / ou Virtuozzo.

Utilisez SSH: Même avec un serveur partagé , vous pouvez obtenir un accès SSH à votre compte (cependant, dans la plupart des cas, vous devez le demander à l'hôte -Ils ne donnent pas sur des serveurs partagés par défaut). Alors, allez et demander l'accès SSH si vous ne l'avez pas déjà obtenu. Une fois que vous obtenez un accès SSH à votre serveur, utilisez un outil simple comme du mastic pour vous connecter à votre compte de serveur via SSH.

Permettez - moi de dire qu'il est très important d'avoir un accès SSH si vous espérez résoudre MediaWiki et d' améliorer ses performances.

Nous pouvons essayer d'améliorer les performances MediaWiki à plusieurs niveaux. Je vais écrire cet article en trois parties; un pour chaque peaufinage de MediaWiki, Apache Web Server et base de données MySQL.

Partie 1 - Peaufiner MediaWiki

Commençons par la première partie du processus. Tout d'abord, vous devez définir votre installation de MediaWiki aux réglages idéaux. Ces paramètres sont importants pour garder plus grand site de MW stable. Ce sont les premiers pas vers la haute performance.

File Caching

MediaWiki est une application web lourd tant sur Apache ainsi que MySQL. Si vous ne faites pas souvent des changements dans la plupart de vos pages, vous pouvez utiliser le fichier cache. Lorsqu'un utilisateur demande une page sur votre site, MediaWiki stocke une copie de la page comme un fichier HTML. La prochaine fois que quelqu'un va demander la même page -Au lieu de parler à MySQL et la reconstruction de la page -MW va envoyer la copie HTML comme réponse. Cela rendra la réponse plus rapide parce que les appels de base de données et le rendu de PHP seront contournés. Pour activer la mise en cache fichier, placez les lignes suivantes dans le fichier LocalSettings.php.

$ wgUseFileCache = true;
$ wgFileCacheDirectory = "$ IP / cache";
$ wgShowIPinHeader = false;

Cache Sidebar

Vous pouvez également mettre en cache le contenu de la barre latérale. Cela permettra d'accélérer la réponse du serveur Web. Pour cache barre latérale, ajouter ce qui suit dans le fichier LocalSettings.php.

$ wgEnableSidebarCache = true;

Utilisez MediaWiki page Compression

Si vous activez la compression, MediaWiki envoie la page demandée au navigateur comme un fichier compressé. Cela permettra de réduire la taille du fichier de réponse et, par conséquent, la vitesse de transfert sera plus grande. Tous les navigateurs modernes sont capables de contenu et de décompression montrent à l'utilisateur. Pour activer la compression, ajoutez la ligne suivante dans le fichier LocalSettings.php.

$ wgUseGzip = true;

Désactiver compteurs Pageview

MediaWiki garde une trace de combien de fois une page a été vue. Ainsi, chaque fois qu'une page est demandée -la vue le nombre de pages de cette page est incrémenté dans la base de données. Si le suivi des pages vues est pas important pour vous, vous devez désactiver cette fonctionnalité pour enregistrer les appels de base de données. Pour désactiver la page vue compteurs, ajoutez la ligne suivante dans le fichier LocalSettings.php.

$ wgDisableCounters = true;

Remarque: Si vous utilisez le fichier de mise en cache, en gardant sur ​​les compteurs ne seront pas d'utilisation de toute façon parce que , dans la plupart des cas , la page demandée obtiendra délivrée aux utilisateurs de cache et de mise à jour de base de données ne se fera pas.

Set Hit Counter Fréquence
Dans le cas où les chiffres de pages vues sont d'une grande importance pour vous et que vous voulez le garder sur; vous devez utiliser la variable $ wgHitcounterUpdateFreq

Cette variable définit la fréquence de la fréquence des compteurs sont mis à jour des pages vues. Par défaut, il a une valeur de 1 -qui signifie la mise à jour se fait chaque fois qu'une page est affichée. Vous devez le régler à quelque chose comme 500. Cela voudrait dire que la base de données sera mise à jour une seule fois après 500 pages vues. Pour définir cette variable, utilisez la commande suivante dans le fichier LocalSettings.php.

$ wgHitcounterUpdateFreq = 500;

Activer le mode Miser

MediaWiki peut fonctionner dans un mode dans lequel il désactive ladre un certain nombre de fonctionnalités pour économiser les ressources et d' améliorer les performances. Après sont les choses que l'activation de mode avare:

  • Désactive la mise en forme personnalisée de changement tailles spéciales: RecentChanges via MediaWiki: Rc changement de taille (r48986)
  • Désactive sélectionner toutes les pages qui commencent par x encadré spécial: journal (et option leprefix de liste = LogEvents module API)
  • Désactive totalement spécial: Mimesearch, ainsi que aimime et option famime dans la liste = allimages et list = module API filearchive
  • Désactive l' option showsizediff du flux RSS pour Special: Contributions
  • Dans la liste = categorymembers et list = externallinks module API, l' utilisation réduite tri par espace de noms (retourne seulement quelques résultats lorsque l' option cmnamespace ou elnamespace est en cours d' utilisation).
  • Désactive même le filtre par la case d'espace de noms sur Special: LinkSearch
  • Désactive liste de la plupart des pages populaires sur spécial montrant: Statistiques (Mais encore montrera d' autres statistiques page vue , si les compteurs sont allumés)
  • Ne pas mettre à jour le nombre d'utilisateurs actifs aussi souvent
  • Désactive la recherche d'images avec x quelque part dans leur boîte de nom sur spécial: Newimages et spéciales: ListFiles
  • Ne pas montrer combien de versions précédentes d'une image ont été téléchargées sur Special: ListFiles
  • Lors de l' exécution script de maintenance de rebuildrecentchanges.php, ne sera pas re-auto-patrouille des modifications par les utilisateurs avec l' auto-patrouille drapeau.
  • Lorsque l' exécution du script de maintenance updateCollations.php, ne sera pas vous dire combien de lignes au total il y a à mettre à jour.

Pour activer le mode ladre, ajouter ce qui suit dans LocalSettings.php

$ wgMiserMode = true;

Utilisez la dernière version de MediaWiki

Folks at MediaWiki bureau de développement ne cessent de changer le code pour le rendre plus rapide et ajouter des fonctionnalités qui pourraient améliorer les performances. Donc, vous devez mettre à jour votre installation de MediaWiki à la dernière version. Voyez comment mettre à niveau MediaWiki .

Exécutez des emplois grâce à Cron

MediaWiki maintient une file d' attente dans lequel il planifie les travaux à effectuer sur la base de données (par exemple , ajout d'une nouvelle page, les changements de mise à jour, suppression de page , etc.). Variable $ wgJobRunRate contrôle la vitesse à laquelle les emplois de cette file d' attente sont exécutées. Idéalement, nous devrions exécuter des tâches quand il y a moins de trafic (par exemple pendant la nuit).

Par défaut, cette variable est définie à 1; ce qui signifie qu'un emploi sera exécuté sur chaque page demandée à partir de votre site Web. Si vous le réglez à 0,1, un emploi sera exécuté sur toutes les 10 demandes de page.

Si les mises à jour en temps réel ne sont pas importants dans votre site Web, il est préférable de définir l'emploi variable de taux à 0, puis configurer une tâche cron pour exécuter toutes les tâches accumulées dans les heures creuses.

Pour définir le taux d'emploi à zéro, ajouter ce qui suit dans LocalSettings.php

$ wgJobRunRate = 0;

Ensuite, vous pouvez définir un crontab comme ceci:

0 0 * * * / usr / bin / php /var/www/wiki/maintenance/runJobs.php> /var/log/runJobs.log 2> & 1

Cela entraînera des emplois pour exécuter en mode batch à minuit tous les jours.

Explicitement écrire le nom de votre site

Pages comme MediaWiki: Aboutsite et MediaWiki: Pagetitle se réfèrent à {{SITENAME}}. Vous devez modifier ces pages et d'écrire le nom de votre site au lieu de {{SITENAME}}.

Maintenant , dans la partie 2, je vais discuter de la façon dont nous devrions modifier serveur Apache dans le but de faire une course d'installation de MediaWiki lent plus rapide. Restez à l'écoute.

Ads

Partager