MediaWiki/Performance: Unterschied zwischen den Versionen

Aus Foxwiki
Wechseln zu:Navigation, Suche
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 14: Zeile 14:
* [[OPcache]]
* [[OPcache]]
* Objekt-Caching
* Objekt-Caching
* APCu/Memcached installieren  
* APCu/Memcached installieren
* ressourcenintensive Bot-Crawler blockieren
* ressourcenintensive Bot-Crawler blockieren


Zeile 27: Zeile 27:
== PHP-Caching ==
== PHP-Caching ==
; PHP-Caching aktivieren (unbedingt erforderlich)
; PHP-Caching aktivieren (unbedingt erforderlich)
PHP kompiliert Code standardmäßig bei jeder Seitenanfrage neu.
PHP kompiliert Code standardmäßig bei jeder Seitenanfrage neu
* Zwischenspeichern dieser Skripte reduziert die CPU-Auslastung
* Zwischenspeichern dieser Skripte reduziert die CPU-Auslastung
* https://www.mediawiki.org/wiki/Manual:Varnish_caching
* https://www.mediawiki.org/wiki/Manual:Varnish_caching
Zeile 62: Zeile 62:
== Bots und Crawler ==
== Bots und Crawler ==
; Bots und Crawler optimieren
; 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.
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://github.com/bitnami/charts/issues/3138
* https://serverfault.com/questions/397482/need-help-trouble-shooting-high-cpu-usage-by-php-fpm
* https://serverfault.com/questions/397482/need-help-trouble-shooting-high-cpu-usage-by-php-fpm


Erstelle oder aktualisiere eine strenge <code>robots.txt</code>-Datei in deinem Hauptverzeichnis, um nicht-kanonische URLs und Systemseiten zu blockieren.
Erstelle oder aktualisiere eine strenge <code>robots.txt</code>-Datei in deinem Hauptverzeichnis, um nicht-kanonische URLs und Systemseiten zu blockieren


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


Zeile 101: Zeile 101:
; PHP-FPM / FastCGI optimieren
; PHP-FPM / FastCGI optimieren
Wenn [[PHP-FPM]]-Prozesse übermäßig viel CPU-Leistung beanspruchen
Wenn [[PHP-FPM]]-Prozesse übermäßig viel CPU-Leistung beanspruchen
* Laufzeit des Prozesses bgrenzen, bevor er recycelt wird, um Speicher freizugeben  
* Laufzeit des Prozesses bgrenzen, bevor er recycelt wird, um Speicher freizugeben
** [[mediawikiwiki:Topic:U1sl12b4w1gkbh2k]]
** [[mediawikiwiki:Topic:U1sl12b4w1gkbh2k]]
** https://serverfault.com/questions/397482/need-help-trouble-shooting-high-cpu-usage-by-php-fpm
** https://serverfault.com/questions/397482/need-help-trouble-shooting-high-cpu-usage-by-php-fpm
Zeile 131: Zeile 131:
=== 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 154: Zeile 154:
; Bereiche
; Bereiche
* Caching (Memcached, Redis)
* Caching (Memcached, Redis)
* Datenbankoptimierung  
* Datenbankoptimierung
* Deaktivieren ungenutzter Erweiterungen
* Deaktivieren ungenutzter Erweiterungen


Zeile 163: Zeile 163:
* Pflege einer effizienten Job-Queue
* Pflege einer effizienten Job-Queue


Die Wikimedia Performance-Initiative überwacht diese Faktoren kontinuierlich, um eine hohe Benutzererfahrung zu gewährleisten. 
Die Wikimedia Performance-Initiative überwacht diese Faktoren kontinuierlich, um eine hohe Benutzererfahrung zu gewährleisten


== Maßnahmen zur Leistungssteigerung ==
== Maßnahmen zur Leistungssteigerung ==
; Caching
; Caching
Objekt-Cache
Objekt-Cache
* Verwendung von Memcached oder Redis ist essenziell für die Zwischenspeicherung von Datenbankabfragen.
* Verwendung von Memcached oder Redis ist essenziell für die Zwischenspeicherung von Datenbankabfragen
Parser-Cache
Parser-Cache
* wgParserCacheType sollte auf ein schnelles Medium (z. B. Redis) eingestellt sein.
* wgParserCacheType sollte auf ein schnelles Medium (z. B. Redis) eingestellt sein
Varnish
Varnish
* Der Einsatz von Varnish-HTTP-Cache vor dem Webserver (wie bei Wikipedia) ist hocheffizient für anonyme Zugriffe.
* Der Einsatz von Varnish-HTTP-Cache vor dem Webserver (wie bei Wikipedia) ist hocheffizient für anonyme Zugriffe
Lokaler Cache
Lokaler Cache
* Verwendung von APCu für lokale Zwischenspeicherung auf dem Server.
* Verwendung von APCu für lokale Zwischenspeicherung auf dem Server


; Datenbank-Optimierung
; Datenbank-Optimierung
* Regelmäßige Wartung, Indizierung und ggf. Trennung von Web- und Datenbankservern.
* Regelmäßige Wartung, Indizierung und ggf. Trennung von Web- und Datenbankservern


; Extensions & Parser
; Extensions & Parser
* Unnötige Erweiterungen deaktivieren, da diese oft die Hauptursache für Verlangsamungen sind.
* Unnötige Erweiterungen deaktivieren, da diese oft die Hauptursache für Verlangsamungen sind
* Parser-Profiling-Metriken (wgPageParseReport) nutzen, um langsame Seiten zu identifizieren.
* Parser-Profiling-Metriken (wgPageParseReport) nutzen, um langsame Seiten zu identifizieren


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


; Leistungsüberwachung
; Leistungsüberwachung
* Die Wikimedia Performance-Initiative bietet Tools zur Analyse und Verbesserung.
* 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.
* 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. 
* 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. 
Durch diese Maßnahmen können Seitenladezeiten, insbesondere bei großen Wikis, von über einer Sekunde auf wenige Millisekunden gesenkt werden


<noinclude>
<noinclude>

Version vom 19. Oktober 2026, 15:49 Uhr

MediaWiki/Performance - Leistungsoptimierungen für MediaWiki

Beschreibung

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?


Anhang

Siehe auch



Dokumentation

Projekt

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

TMP

MediaWiki/performance - Performance von MediaWiki steigern

Beschreibung

Bereiche
  • Caching (Memcached, Redis)
  • Datenbankoptimierung
  • Deaktivieren ungenutzter Erweiterungen
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

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


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