Quels conseils avez-vous pour accélérer (les performances) d'une installation MediaWiki?

8

Nous avons une installation MediaWiki et nous recevons des plaintes selon lesquelles elle ralentit. Comment pouvons-nous augmenter la vitesse / les performances?

J'ai un conseil (que j'ajouterai ci-dessous) mais je suis vraiment intéressé à en savoir plus. De préférence un conseil par réponse.

Réintégrer Monica - Au revoir SE
la source
1
Voici un lien utile que j'ai trouvé: dom.as/2007/01/26/mediawiki-performance-tuning
Monica - Goodbye SE
Ou le plus complet et récent mediawiki.org/wiki/Manual:Performance_tuning
Nemo

Réponses:

4

Au lieu de la mise en cache de la mémoire, surtout si votre site est de petite à moyenne taille, la taille totale de toutes les pages hmtl n'est donc pas un problème - une solution simple consiste simplement à activer le cache de fichiers à la place.

http://www.mediawiki.org/wiki/Manual:File_cache

J'ai passé plusieurs heures aujourd'hui à essayer d'activer l'une des solutions de mise en cache de mémoire recommandées par mediawiki sur mon hébergement partagé (chez bluehost) et je n'ai trouvé aucun moyen de le faire, puis j'ai découvert cette option et cela a résolu tous les problèmes.

Voici le wiki avec la mise en cache des fichiers activée:

http://robertinventor.com/bmwiki

Avant la mise en cache des fichiers, il a fallu plusieurs secondes pour charger la plupart des pages, et parfois beaucoup plus, jusqu'à quelques minutes selon les journaux Google Analytics.

Robert Walker
la source
4

Quelques bons conseils ici . Pour moi, la chose qui a fait la plus grande différence (de 8 secondes à 0 sur IIS 7) était d'activer la mise en cache et la modification $wgDBserver = "127.0.0.1";(à partir de localhost). Pour une raison quelconque, localhost était résolu via le réseau.

Voici l'intégralité de l'article de Jaded:

  1. L'un des plus grands impacts, en réduisant la charge de 15 secondes à environ 6 ou 7, a été d'activer la mise en cache et l'accélération Mediawiki, comme détaillé dans cet article: http://www.charlesrcook.com/archive/2012/09/12/ mediawiki-iis7-output-caching-and-friendlyshort-urls.aspx . En bref, activez les éléments suivants dans votre fichier Mediawiki localsettings.php:

    $wgCacheDirectory = "c:\your\path\to\cache";
    $wgFileCacheDirectory = "c:\your\path\to\cache ";
    $wgEnableSidebarCache = true;
    $wgUseFileCache = true;
    $wgShowIPinHeader = false;
    $wgEnableParserCache = true;
    $wgCachePages = true;
    
    $wgMainCacheType = CACHE_ACCEL;
    $wgMessageCacheType = CACHE_ACCEL;
    $wgParserCacheType = CACHE_ACCEL;
    $wgMemCachedServers = array();
    

    Assurez-vous que vos comptes IUSR et IIS_IUSR locaux disposent des autorisations "Modifier" sur le répertoire de cache, sinon les fichiers et répertoires du moteur de mise en cache Mediawiki ne pourront pas y écrire.

  2. J'ai apporté quelques modifications mineures à la mise en cache en PHP à l'aide de Wincache, mais cela n'a eu pratiquement aucun effet - activez-le et configurez-le si vous le souhaitez du point de vue de PHP, mais ne vous attendez pas à un saut majeur. La même chose vaut pour la mise en cache des requêtes MySQL - mon site Wiki est relativement petit, avec une utilisation minimale, donc la mise en cache des requêtes MySQL n'a pas été une énorme amélioration.

  3. Le dernier clou dans le cercueil pour mettre le site à jour était la modification du paramètre $ wgDBserver dans mon fichier Mediawiki LocalSettings.php. Il a été défini sur "Localhost", et cet article http://forums.iis.net/t/1153459.aspx/3/10 a suggéré que l'utilisation de "Localhost" sur Windows 7 et sur Server 2008 commence à impliquer IPv6 dans l'interrogation de la page. La couche transport devait résoudre localhost et le faisait en négociant entre une adresse IPv4 et une adresse IPv6, que PHP et MySQL devaient résoudre avant d'autoriser le rendu de la page. Il semble que ce ne soit toujours pas un protocole intégré entièrement pris en charge, donc définir $ wgDBserver à l'adresse IPv4 de "127.0.0.1" a pris le rendu de 6 secondes à seulement 1 seconde - problème résolu!

Sonic Soul
la source
3

Activez la mise en cache dans LocalSettings.php. Pour ce faire, ajoutez / modifiez cette ligne:

$wgMainCacheType = CACHE_ACCEL;

Voir Manual: Cache et cette page mwusers .

Réintégrer Monica - Au revoir SE
la source
2

Tout d'abord, vous devez vous assurer que vous utilisez Apache Server '' '. Mediawiki est plus lent si vous avez installé sur Windows Server ou IIS. S'il se trouve sur le serveur Windows, déplacez les dossiers d'application vers le serveur Linux. Windows et Linux Server pour Mediawiki Guide

Alto
la source
0

Cela peut ne pas être pertinent avec les versions actuelles de MW, mais vérifiez le paramètre php mbstring.func_overload. Je l'ai mis à 2 (comme condition préalable à une petite installation zabbix) et il a tué les performances d'une installation de 1,12 de MW sur le même serveur.

SmallClanger
la source
THX! Va le vérifier.
Rétablir Monica - Au revoir SE
selon: mediawiki.org/wiki/PHP_configuration mbstring.func_overload Cette option provoque des erreurs et peut corrompre les données de façon imprévisible; MediaWiki refusera d'installer si cette option est activée. Je suppose donc que cela ne s'applique pas.
Rétablir Monica - Au revoir SE
0

Utilisez un php opcode cacher, assurez-vous que dB n'est pas le goulot d'étranglement, pensez à utiliser un http cacher comme un vernis.

3molo
la source
pouvez-vous me donner un peu plus de détails ici? Par exemple, les liens, comment savoir si la base de données est le goulot d'étranglement, qu'est-ce qu'un http cacher? Je ne connais pas vraiment les détails du back-end.
Rétablir Monica - Au revoir SE
Google pour mysqltuner.pl, ou utilisez mysql-tuner.sh de day32.com/MySQL , ils vous diront si vous avez besoin de renforcer les tampons, si les requêtes sont lentes, etc. Varnish est un service de type proxy inverse qui peut mettre en cache pages web dynamiques, la courbe d'apprentissage est un peu raide mais c'est un service haut de gamme donc ça vaut vraiment le coup de vérifier. L'ordre dans lequel vous devriez enquêter est (probablement une partie de l'évidence comme le débit du réseau) 1) opcode cacher 2) déterminer comment db est en train de faire / effectuer et 3) vernir.
3molo
Mediawiki a même un article sur la mise en cache avec du vernis! mediawiki.org/wiki/Manual:Varnish_caching
3molo
Vous avez oublié de mentionner que mediawiki suggère également d'utiliser memcached pour la mise en cache entre la base de données et le site réel, voir mediawiki.org/wiki/Memcached
3molo