MediaWiki/Performance: Unterschied zwischen den Versionen
| (6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 2: | Zeile 2: | ||
== Beschreibung == | == Beschreibung == | ||
; Bereiche | |||
* [[Caching]] | |||
* [[Memcached]] | |||
* [[Redis]] | |||
* Datenbankoptimierung | |||
* Erweiterungen | |||
**Deaktivieren, wenn nicht notwendig | |||
; Wichtige Maßnahmen | |||
* Object-Caching | |||
* Varnish für anonyme Nutzer | |||
* Optimieren der MySQL/MariaDB-Datenbank | |||
* Pflege einer effizienten Job-Queue | |||
Die Wikimedia Performance-Initiative überwacht diese Faktoren kontinuierlich, um eine hohe Benutzererfahrung zu gewährleisten | |||
; Ressourcen | ; Ressourcen | ||
[[Webserver]] und [[PHP]] genügend [[Arbeitsspeicher]] und [[CPU-Kapazität]] zuweisen | [[Webserver]] und [[PHP]] genügend [[Arbeitsspeicher]] und [[CPU-Kapazität]] zuweisen | ||
| Zeile 120: | Zeile 136: | ||
<noinclude> | <noinclude> | ||
== Maßnahmen zur Leistungssteigerung == | |||
=== Caching === | |||
{| | |||
|- | |||
| [[Objekt-Cache]] || Verwendung von Memcached oder Redis ist essenziell für die Zwischenspeicherung von Datenbankabfragen | |||
|- | |||
| [[Parser-Cache]] || wgParserCacheType sollte auf ein schnelles Medium (z. B. Redis) eingestellt sein | |||
|- | |||
| [[Varnish]] || Der Einsatz von Varnish-HTTP-Cache vor dem Webserver (wie bei Wikipedia) ist hocheffizient für anonyme Zugriffe | |||
|- | |||
| [[Lokaler Cache]] || Verwendung von APCu für lokale Zwischenspeicherung auf dem Server | |||
|} | |||
=== Datenbank-Optimierung === | |||
* Regelmäßige Wartung, Indizierung und ggf. Trennung von Web- und Datenbankservern | |||
=== Extensions & Parser === | |||
* Unnötige Erweiterungen deaktivieren, da diese oft die Hauptursache für Verlangsamungen sind | |||
* Parser-Profiling-Metriken (wgPageParseReport) nutzen, um langsame Seiten zu identifizieren | |||
=== Konfiguration === | |||
* $wgMainCacheType und $wgSessionCacheType korrekt auf einen zentralen Cache (z. .B. Memcached) einstellen, besonders bei mehreren Webservern | |||
* Job-Queue optimieren, um Hintergrundaufgaben nicht die Live-Performance beeinträchtigen zu lassen | |||
=== Leistungsüberwachung === | |||
* Die Wikimedia Performance-Initiative bietet Tools zur Analyse und Verbesserung | |||
* Die Extension [https://www.mediawiki.org/wiki/Help:Extension:PerformanceInspector PerformanceInspector] hilft, Engpässe bei Parser-Metriken, Modulen und Bildern zu erkennen | |||
* Regelmäßige Leistungstests (Performance Reviews) sind bei umfangreichen Änderungen empfehlenswert | |||
Durch diese Maßnahmen können Seitenladezeiten, insbesondere bei großen Wikis, von über einer Sekunde auf wenige Millisekunden gesenkt werden | |||
== Anhang == | == Anhang == | ||
| Zeile 144: | Zeile 191: | ||
[[Kategorie:MediaWiki/Verwaltung]] | [[Kategorie:MediaWiki/Verwaltung]] | ||
</noinclude> | </noinclude> | ||
Aktuelle Version vom 19. Oktober 2026, 15:58 Uhr
MediaWiki/Performance - Leistungsoptimierungen für MediaWiki
Beschreibung
- Bereiche
- Wichtige Maßnahmen
- Object-Caching
- Varnish für anonyme Nutzer
- Optimieren der MySQL/MariaDB-Datenbank
- Pflege einer effizienten Job-Queue
Die Wikimedia Performance-Initiative überwacht diese Faktoren kontinuierlich, um eine hohe Benutzererfahrung zu gewährleisten
- Ressourcen
Webserver und PHP genügend Arbeitsspeicher und CPU-Kapazität zuweisen
- Caching-Tools
- CPU-Auslastung reduzieren
- Alternative Webserver
Nginx oder Lighttpd
- Die Verwendung von Nginx oder Lighttpd als Webserver anstelle von Apache kann die Leistung stark frequentierter Websites erheblich verbessern
- Links
- Alle Optionen für das Caching
- https://serverfault.com/questions/397482/need-help-trouble-shooting-high-cpu-usage-by-php-fpm
PHP-Caching
- PHP-Caching aktivieren (unbedingt erforderlich)
PHP kompiliert Code standardmäßig bei jeder Seitenanfrage neu
- Zwischenspeichern dieser Skripte reduziert die CPU-Auslastung
- https://www.mediawiki.org/wiki/Manual:Varnish_caching
- https://www.mediawiki.org/wiki/Manual:Performance_tuning
- OPcache
OPcache in der php.ini-Datei aktivieren
opcache.enable=1opcache.memory_consumption=128
- APCu
APCu-PHP-Erweiterung installieren
- schnelles, lokales Objekt-Caching
- https://www.mediawiki.org/wiki/Manual:Performance_tuning/ca
- https://wiki.centos-webpanel.com/improve-website-performance
- https://www.mediawiki.org/wiki/Manual:Varnish_caching
Objekt- und Hauptcache
- MediaWiki-Objekt- und Hauptcache konfigurieren
Datenbankabfragen zwischensoeichern
- LocalSettings.php
$wgMainCacheType = CACHE_ACCEL;
$wgParserCacheType = CACHE_ACCEL;
$wgSessionCacheType = CACHE_ACCEL;
- mediawikiwiki:Manual:$wgMainCacheType
- https://hexshift.medium.com/step-by-step-guide-to-optimizing-mediawiki-performance-with-caching-and-profiling-391b5203d166
- https://lists.wikimedia.org/hyperkitty/list/mediawiki-l@lists.wikimedia.org/thread/S7YWAMM6BHTZBOK7ZPQ2ZBKRSML42OPP/
- https://hexshift.medium.com/step-by-step-guide-to-optimizing-mediawiki-performance-with-caching-and-profiling-391b5203d166
Bots und Crawler
- Bots und Crawler optimieren
Aggressive Suchmaschinen-Bots können dynamische Seiten (wie api.php oder index.php?action=history) indexieren und Ihre CPU überlasten
- https://github.com/bitnami/charts/issues/3138
- https://serverfault.com/questions/397482/need-help-trouble-shooting-high-cpu-usage-by-php-fpm
Erstelle oder aktualisiere eine strenge robots.txt-Datei in deinem Hauptverzeichnis, um nicht-kanonische URLs und Systemseiten zu blockieren
- Beispielregeln
text User-agent:* Disallow: /wiki/Special: Disallow: /w/api.php Disallow: /w/index.php
Erweiterungen
- Ressourcenintensive Erweiterungen anpassen
Komplexe Erweiterungen wie Semantic MediaWiki (SMW) können von Seiten zu erheblicher Serverbelastung führen
- Abfrage-Caching
Abfrage-Caching bei SMW aktivieren
- verhindert, dass komplexe semantische Abfragen bei jedem Besuch neu berechnet werden
LocalSettings.php
$smwgEnableCache = true;
Zähler
- Seitenzähler deaktivieren
Erfassung der Seitenaufrufen kann auf stark frequentierten Seiten zu einem sprunghaften Anstieg der CPU-Auslastung führen
Werden keine Seitenstatistiken benötigt, kann der Seitenzähler deaktiviert werden
- LocalSettings.php
$wgDisableCounters = true;
PHP-FPM / FastCGI
- PHP-FPM / FastCGI optimieren
Wenn PHP-FPM-Prozesse übermäßig viel CPU-Leistung beanspruchen
- Laufzeit des Prozesses bgrenzen, bevor er recycelt wird, um Speicher freizugeben
- php-fpm.conf
pm.max_requests = 500
- Skalierung
Anleitung zur Skalierung
- Erweiterungen
Welche Erweiterungen (wie Semantic MediaWiki) sind aktiv?
Maßnahmen zur Leistungssteigerung
Caching
| Objekt-Cache | Verwendung von Memcached oder Redis ist essenziell für die Zwischenspeicherung von Datenbankabfragen |
| Parser-Cache | wgParserCacheType sollte auf ein schnelles Medium (z. B. Redis) eingestellt sein |
| Varnish | Der Einsatz von Varnish-HTTP-Cache vor dem Webserver (wie bei Wikipedia) ist hocheffizient für anonyme Zugriffe |
| Lokaler Cache | Verwendung von APCu für lokale Zwischenspeicherung auf dem Server |
Datenbank-Optimierung
- Regelmäßige Wartung, Indizierung und ggf. Trennung von Web- und Datenbankservern
Extensions & Parser
- Unnötige Erweiterungen deaktivieren, da diese oft die Hauptursache für Verlangsamungen sind
- Parser-Profiling-Metriken (wgPageParseReport) nutzen, um langsame Seiten zu identifizieren
Konfiguration
- $wgMainCacheType und $wgSessionCacheType korrekt auf einen zentralen Cache (z. .B. Memcached) einstellen, besonders bei mehreren Webservern
- Job-Queue optimieren, um Hintergrundaufgaben nicht die Live-Performance beeinträchtigen zu lassen
Leistungsüberwachung
- Die Wikimedia Performance-Initiative bietet Tools zur Analyse und Verbesserung
- Die Extension PerformanceInspector hilft, Engpässe bei Parser-Metriken, Modulen und Bildern zu erkennen
- Regelmäßige Leistungstests (Performance Reviews) sind bei umfangreichen Änderungen empfehlenswert
Durch diese Maßnahmen können Seitenladezeiten, insbesondere bei großen Wikis, von über einer Sekunde auf wenige Millisekunden gesenkt werden
Anhang
Siehe auch
Dokumentation
Links
Projekt
Weblinks
- https://www.mediawiki.org/wiki/Manual:Performance_tuning
- https://www.mediawiki.org/wiki/Manual:Varnish_caching