MediaWiki/Performance: Unterschied zwischen den Versionen

Aus Foxwiki
Wechseln zu:Navigation, Suche
 
(59 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''MediaWiki/Performance'''
'''MediaWiki/Performance''' - Leistungsoptimierungen für [[MediaWiki]]


== Beschreibung ==
== Beschreibung ==
* Stellen Sie sicher, dass Ihrem Webserver und PHP genügend Arbeitsspeicher zugewiesen ist.
; Bereiche
* Es gibt eine Vielzahl von Caching-Tools
* [[Caching]]
**, die in Verbindung mit MediaWiki (und untereinander) verwendet werden können, wie Varnish und Memcached.
* [[Memcached]]
* [[Redis]]
* Datenbankoptimierung
* Erweiterungen
**Deaktivieren, wenn nicht notwendig


Alle Optionen für das Caching finden Sie hier:
; Wichtige Maßnahmen
* [https://www.mediawiki.org/wiki/Manual:Performance_tuning https://www.mediawiki.org/wiki/Manual:Performance_tuning ]
* Object-Caching
* Varnish für anonyme Nutzer
* Optimieren der MySQL/MariaDB-Datenbank
* Pflege einer effizienten Job-Queue


* Die Verwendung von Nginx oder Lighttpd als Webserver anstelle von Apache kann die Leistung stark frequentierter Websites erheblich verbessern.
Die Wikimedia Performance-Initiative überwacht diese Faktoren kontinuierlich, um eine hohe Benutzererfahrung zu gewährleisten
Um die CPU-Auslastung von MediaWiki zu reduzieren, entlasten Sie den Server, indem Sie den robusten ‚‘'PHP OPcache'‚‘' aktivieren, das Objekt-Caching ‚‘'APCu/Memcached'‚‘ installieren und ressourcenintensive Bot-Crawler blockieren. Diese Änderungen verhindern, dass Ihr Server bei jedem Besuch Seiten ständig neu rendert und Skripte neu kompiliert. [[https://www.mediawiki.org/wiki/Manual:Varnish_caching<nowiki> 1], </nowiki> [[mediawikiwiki:Manual:Performance_tuning|2]], [https://serverfault.com/questions/397482/need-help-trouble-shooting-high-cpu-usage-by-php-fpm 3]]


1. PHP-Caching aktivieren (unbedingt erforderlich)
; Ressourcen
[[Webserver]] und [[PHP]] genügend [[Arbeitsspeicher]] und [[CPU-Kapazität]] zuweisen


PHP kompiliert Code standardmäßig bei jeder Seitenanfrage neu. Das Zwischenspeichern dieser Skripte reduziert die CPU-Auslastung drastisch. [[https://www.mediawiki.org/wiki/Manual:Varnish_caching<nowiki> 1], [</nowiki>https://www.mediawiki.org/wiki/Manual:Performance_tuning 2]]* ‚‘'OPcache:‚‘' Stelle sicher, dass OPcache in deiner <code>php.ini</code>-Datei aktiviert ist. Setzen Sie <code>opcache.enable=1</code> und weisen Sie ausreichend Speicher zu (z. B. <code>opcache.memory_consumption=128</code>).
; Caching-Tools
* [[Varnish]]
* [[Memcached]]
* https://www.mediawiki.org/wiki/Manual:Varnish_caching


* ‚‘'APCu:‚‘' Installieren Sie die APCu-PHP-Erweiterung für schnelles, lokales Objekt-Caching. [[https://www.mediawiki.org/wiki/Manual:Performance_tuning/ca<nowiki> 1], </nowiki>[https://wiki.centos-webpanel.com/improve-website-performance 2], [https://www.mediawiki.org/wiki/Manual:Varnish_caching 3]]
; CPU-Auslastung reduzieren
* [[PHP]]
* [[OPcache]]
* Objekt-Caching
* APCu/Memcached installieren
* ressourcenintensive Bot-Crawler blockieren


2. MediaWiki-Objekt- und Hauptcache konfigurieren
; Alternative Webserver
Nginx oder Lighttpd
* Die Verwendung von Nginx oder Lighttpd als Webserver anstelle von Apache kann die Leistung stark frequentierter Websites erheblich verbessern


Verhindere, dass MediaWiki bei häufig abgerufenen Daten wiederholt auf die Datenbank zugreift. [[https://hexshift.medium.com/step-by-step-guide-to-optimizing-mediawiki-performance-with-caching-and-profiling-391b5203d166 1]]* Öffne deine <code>LocalSettings.php</code>-Datei und füge Folgendes hinzu:
; Links
* [https://www.mediawiki.org/wiki/Manual:Performance_tuning Alle Optionen für das Caching]
* https://serverfault.com/questions/397482/need-help-trouble-shooting-high-cpu-usage-by-php-fpm


php
== 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 <code>php.ini</code>-Datei aktivieren
* <code>opcache.enable=1</code>
* <code>opcache.memory_consumption=128</code>
; 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
<syntaxhighlight lang="bash" highlight="" line copy>
$wgMainCacheType = CACHE_ACCEL;
$wgMainCacheType = CACHE_ACCEL;
$wgParserCacheType = CACHE_ACCEL;
$wgParserCacheType = CACHE_ACCEL;
$wgSessionCacheType = CACHE_ACCEL;
$wgSessionCacheType = CACHE_ACCEL;
</syntaxhighlight>


Verwende diesen Code mit Vorsicht.
* [[mediawikiwiki:Manual:$wgMainCacheType]]
 
* https://hexshift.medium.com/step-by-step-guide-to-optimizing-mediawiki-performance-with-caching-and-profiling-391b5203d166
[[https://www.mediawiki.org/wiki/Manual:$wgMainCacheType<nowiki> 1], </nowiki>[https://hexshift.medium.com/step-by-step-guide-to-optimizing-mediawiki-performance-with-caching-and-profiling-391b5203d166 2], [https://lists.wikimedia.org/hyperkitty/list/mediawiki-l@lists.wikimedia.org/thread/S7YWAMM6BHTZBOK7ZPQ2ZBKRSML42OPP/ 3]]
* 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
3. Bots und Crawler optimieren
 
Aggressive Suchmaschinen-Bots können dynamische Seiten (wie <code>api.php</code> oder <code>index.php?action=history</code>) indexieren und Ihre CPU überlasten. [[https://github.com/bitnami/charts/issues/3138<nowiki> 1], [</nowiki>https://serverfault.com/questions/397482/need-help-trouble-shooting-high-cpu-usage-by-php-fpm 2]]* Erstelle oder aktualisiere eine strenge <code>robots.txt</code>-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 Verwende Code mit Vorsicht. [[https://serverfault.com/questions/397482/need-help-trouble-shooting-high-cpu-usage-by-php-fpm 1]]


4. Passen Sie ressourcenintensive Erweiterungen an
== Bots und Crawler ==
; Bots und Crawler optimieren
Aggressive Suchmaschinen-Bots können dynamische Seiten (wie <code>api.php</code> oder <code>index.php?action=history</code>) 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


Komplexe Erweiterungen wie ‚‘'Semantic MediaWiki (SMW)‚‘' können beim Laden von Seiten zu einer erheblichen Serverbelastung führen. [[https://hexshift.medium.com/step-by-step-guide-to-optimizing-mediawiki-performance-with-caching-and-profiling-391b5203d166 1]]* Wenn du SMW verwendest, aktiviere das ‚‘'Abfrage-Caching'‚‘, um zu verhindern, dass komplexe semantische Abfragen bei jedem Besuch neu berechnet werden. Füge dies zu <code>LocalSettings.php</code> hinzu:
Erstelle oder aktualisiere eine strenge <code>robots.txt</code>-Datei in deinem Hauptverzeichnis, um nicht-kanonische URLs und Systemseiten zu blockieren


php
; Beispielregeln
text User-agent:*
Disallow: /wiki/Special:
Disallow: /w/api.php Disallow: /w/index.php


$smwgEnableCache = true;
* https://serverfault.com/questions/397482/need-help-trouble-shooting-high-cpu-usage-by-php-fpm


Verwende Code mit Vorsicht.
== Erweiterungen ==
; Ressourcenintensive Erweiterungen anpassen
Komplexe Erweiterungen wie ''Semantic MediaWiki (SMW)'' können von Seiten zu erheblicher Serverbelastung führen
* https://hexshift.medium.com/step-by-step-guide-to-optimizing-mediawiki-performance-with-caching-and-profiling-391b5203d166


5. Deaktiviere unnötige Zähler
; Abfrage-Caching
''Abfrage-Caching'' bei SMW aktivieren
* verhindert, dass komplexe semantische Abfragen bei jedem Besuch neu berechnet werden


Das Erfassen von Seitenaufrufen kann auf stark frequentierten Seiten zu einem sprunghaften Anstieg der CPU-Auslastung führen. [<nowiki/>[[mediawikiwiki:Topic:Rncjbh4poqojjt9k|1]]]* Wenn du keine Seitenstatistiken benötigst, kannst du den Seitenzähler deaktivieren, indem du Folgendes in <code>LocalSettings.php</code> einfügst:
''LocalSettings.php''
$smwgEnableCache = true;


php
== Zähler ==
; Seitenzähler deaktivieren
Erfassung der Seitenaufrufen kann auf stark frequentierten Seiten zu einem sprunghaften Anstieg der CPU-Auslastung führen
* [[mediawikiwiki:Topic:Rncjbh4poqojjt9k]]
Werden keine Seitenstatistiken benötigt, kann der Seitenzähler deaktiviert werden


; LocalSettings.php
<syntaxhighlight lang="php" highlight="" copy>
$wgDisableCounters = true;
$wgDisableCounters = true;
</syntaxhighlight>


Verwende Code mit Vorsicht.
== 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
** [[mediawikiwiki:Topic:U1sl12b4w1gkbh2k]]
** https://serverfault.com/questions/397482/need-help-trouble-shooting-high-cpu-usage-by-php-fpm


6. PHP-FPM / FastCGI optimieren
; php-fpm.conf
<syntaxhighlight lang="bash" highlight="1" line copy>
pm.max_requests = 500
</syntaxhighlight>


Wenn deine PHP-FPM-Prozesse aufgrund hohen Datenverkehrs übermäßig viel CPU-Leistung beanspruchen, begrenze die Laufzeit jedes Prozesses, bevor er recycelt wird, um Speicher freizugeben. [[https://www.mediawiki.org/wiki/Topic:U1sl12b4w1gkbh2k<nowiki> 1], [</nowiki>https://serverfault.com/questions/397482/need-help-trouble-shooting-high-cpu-usage-by-php-fpm 2]]* Konfigurieren Sie in Ihrer <code>php-fpm.conf</code> oder Pool-Konfiguration <code>pm.max_requests</code>, um Prozesse zu aktualisieren (z. B. <code>pm.max_requests = 500</code>).
; Skalierung
Anleitung zur Skalierung
* [[mediawikiwiki:Manual:Performance_tuning|MediaWiki-Handbuch zur Leistungsoptimierung]]
* [[mediawikiwiki:Manual:Performance_tuning|Manual:Performance_tuning]]


Eine umfassendere Anleitung zur Skalierung finden Sie im offiziellen [[mediawikiwiki:Manual:Performance_tuning|MediaWiki-Handbuch zur Leistungsoptimierung]]. [<nowiki/>[[mediawikiwiki:Manual:Performance_tuning|1]]]
; Erweiterungen
Welche Erweiterungen (wie Semantic MediaWiki) sind aktiv?
* https://hexshift.medium.com/step-by-step-guide-to-optimizing-mediawiki-performance-with-caching-and-profiling-391b5203d166


Wenn Sie möchten, teilen Sie mir bitte weitere Details zu Ihrer Konfiguration mit:* Verwenden Sie ‚‘'Apache oder Nginx'‚‘?
<noinclude>
 
* Welche ‚‘'Erweiterungen'‚‘ (wie Semantic MediaWiki) sind derzeit aktiv? [[https://hexshift.medium.com/step-by-step-guide-to-optimizing-mediawiki-performance-with-caching-and-profiling-391b5203d166 1]]
 
== Installation ==
<syntaxhighlight lang="bash" highlight="1" line copy>
</syntaxhighlight>


== Aufruf ==
== Maßnahmen zur Leistungssteigerung ==
<syntaxhighlight lang="bash" highlight="1" line copy>
=== Caching ===
</syntaxhighlight>
{|
 
=== Optionen ===
{| class="wikitable sortable options gnu big"
|-
|-
! Unix !! GNU !! Parameter !! Beschreibung
| [[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
 
=== Parameter ===
=== Umgebungsvariablen ===
=== Exit-Status ===
{| class="wikitable options col1center big"
|-
|-
! Wert !! Beschreibung
| [[Lokaler Cache]] || Verwendung von APCu für lokale Zwischenspeicherung auf dem Server
|-
| 0 || Erfolg
|-
| >0 || Fehler
|}
|}


== Anwendung ==
=== Datenbank-Optimierung ===
<syntaxhighlight lang="bash" highlight="1" line copy>
* Regelmäßige Wartung, Indizierung und ggf. Trennung von Web- und Datenbankservern
</syntaxhighlight>


<!-- output -->
=== Extensions & Parser ===
<syntaxhighlight lang="bash" highlight="" line>
* Unnötige Erweiterungen deaktivieren, da diese oft die Hauptursache für Verlangsamungen sind
</syntaxhighlight>
* Parser-Profiling-Metriken (wgPageParseReport) nutzen, um langsame Seiten zu identifizieren


=== Problembehebung ===
=== Konfiguration ===
* $wgMainCacheType und $wgSessionCacheType korrekt auf einen zentralen Cache (z.&nbsp;.B.&nbsp; Memcached) einstellen, besonders bei mehreren Webservern
* Job-Queue optimieren, um Hintergrundaufgaben nicht die Live-Performance beeinträchtigen zu lassen


== Konfiguration ==
=== Leistungsüberwachung ===
=== Dateien ===
* Die Wikimedia Performance-Initiative bietet Tools zur Analyse und Verbesserung
{| class="wikitable options big"
* 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
! Datei !! Beschreibung
|-
| ||
|-
| ||
|}


<noinclude>
Durch diese Maßnahmen können Seitenladezeiten, insbesondere bei großen Wikis, von über einer Sekunde auf wenige Millisekunden gesenkt werden


== Anhang ==
== Anhang ==
Zeile 133: Zeile 178:
=== Dokumentation ===
=== Dokumentation ===
<!--
<!--
; Man-Page  
; Man-Page
# [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)]
# [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)]


; Info-Pages  
; Info-Pages
-->
-->


Zeile 142: Zeile 187:
==== Projekt ====
==== Projekt ====
==== Weblinks ====
==== Weblinks ====
 
# https://www.mediawiki.org/wiki/Manual:Performance_tuning
<!--
# https://www.mediawiki.org/wiki/Manual:Varnish_caching
{{DEFAULTSORT:new}}
{{DISPLAYTITLE:new}}
-->


[[Kategorie:MediaWiki/Verwaltung]]
[[Kategorie:MediaWiki/Verwaltung]]


</noinclude>
</noinclude>

Aktuelle Version vom 19. Oktober 2026, 14: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
  • PHP
  • OPcache
  • Objekt-Caching
  • APCu/Memcached installieren
  • ressourcenintensive Bot-Crawler blockieren
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

PHP-Caching

PHP-Caching aktivieren (unbedingt erforderlich)

PHP kompiliert Code standardmäßig bei jeder Seitenanfrage neu

OPcache

OPcache in der php.ini-Datei aktivieren

  • opcache.enable=1
  • opcache.memory_consumption=128
APCu

APCu-PHP-Erweiterung installieren

Objekt- und Hauptcache

MediaWiki-Objekt- und Hauptcache konfigurieren

Datenbankabfragen zwischensoeichern

LocalSettings.php
$wgMainCacheType = CACHE_ACCEL;
$wgParserCacheType = CACHE_ACCEL;
$wgSessionCacheType = CACHE_ACCEL;

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

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

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

Projekt

  1. https://www.mediawiki.org/wiki/Manual:Performance_tuning
  2. https://www.mediawiki.org/wiki/Manual:Varnish_caching