Zum Inhalt springen

MediaWiki/Performance: Unterschied zwischen den Versionen

Aus Foxwiki
 
(30 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''MediaWiki/Performance'''
'''MediaWiki/Performance''' - Leistungsoptimierungen für [[MediaWiki]]


== Beschreibung ==
== Beschreibung ==
; Ressourcen
; Ressourcen
Stellen Sie sicher, dass Ihrem Webserver und PHP genügend Arbeitsspeicher zugewiesen ist
[[Webserver]] und [[PHP]] genügend [[Arbeitsspeicher]] und [[CPU-Kapazität]] zuweisen
* Es gibt eine Vielzahl von Caching-Tools
 
** die in Verbindung mit MediaWiki (und untereinander) verwendet werden können([[Varnish]] und [[Memcached]])
; Caching-Tools
** https://www.mediawiki.org/wiki/Manual:Varnish_caching
* [[Varnish]]
* [[Memcached]]
* https://www.mediawiki.org/wiki/Manual:Varnish_caching


; CPU-Auslastung reduzieren
; CPU-Auslastung reduzieren
* PHP OPcache aktivieren
* [[PHP]]
* [[OPcache]]
* Objekt-Caching
* Objekt-Caching
* APCu/Memcached installieren  
* APCu/Memcached installieren  
Zeile 22: Zeile 25:
* 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


== PHP-Caching aktivieren ==
== 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.  
* Das Zwischenspeichern dieser Skripte reduziert die CPU-Auslastung drastisch.
* Zwischenspeichern dieser Skripte reduziert die CPU-Auslastung
* https://www.mediawiki.org/wiki/Manual:Varnish_caching
* https://www.mediawiki.org/wiki/Manual:Varnish_caching
* https://www.mediawiki.org/wiki/Manual:Performance_tuning
* https://www.mediawiki.org/wiki/Manual:Performance_tuning


; OPcache
; OPcache
Stelle sicher, dass OPcache in deiner <code>php.ini</code>-Datei aktiviert ist.
OPcache in der <code>php.ini</code>-Datei aktivieren
* Setzen Sie <code>opcache.enable=1</code> und weisen Sie ausreichend Speicher zu (z. B. <code>opcache.memory_consumption=128</code>).
* <code>opcache.enable=1</code>
* <code>opcache.memory_consumption=128</code>


; APCu
; APCu
Installieren Sie die APCu-PHP-Erweiterung für schnelles, lokales Objekt-Caching.
APCu-PHP-Erweiterung installieren
* [https://www.mediawiki.org/wiki/Manual:Performance_tuning/ca 1]
* schnelles, lokales Objekt-Caching
* [https://wiki.centos-webpanel.com/improve-website-performance 2]
* https://www.mediawiki.org/wiki/Manual:Performance_tuning/ca
* [https://www.mediawiki.org/wiki/Manual:Varnish_caching 3]
* https://wiki.centos-webpanel.com/improve-website-performance
* https://www.mediawiki.org/wiki/Manual:Varnish_caching


== Objekt- und Hauptcache ==
== Objekt- und Hauptcache ==
; MediaWiki-Objekt- und Hauptcache konfigurieren
; MediaWiki-Objekt- und Hauptcache konfigurieren
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:
Datenbankabfragen zwischensoeichern


$wgMainCacheType = CACHE_ACCEL;
; LocalSettings.php
$wgParserCacheType = CACHE_ACCEL;
<syntaxhighlight lang="bash" highlight="" line copy>
$wgSessionCacheType = CACHE_ACCEL;
$wgMainCacheType = CACHE_ACCEL;
$wgParserCacheType = CACHE_ACCEL;
$wgSessionCacheType = CACHE_ACCEL;
</syntaxhighlight>


* [[mediawikiwiki:Manual:$wgMainCacheType|1]]
* [[mediawikiwiki:Manual:$wgMainCacheType]]
* [https://hexshift.medium.com/step-by-step-guide-to-optimizing-mediawiki-performance-with-caching-and-profiling-391b5203d166 2]
* 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/ 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


== 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 1]
* https://github.com/bitnami/charts/issues/3138
* [https://serverfault.com/questions/397482/need-help-trouble-shooting-high-cpu-usage-by-php-fpm 2]
* 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


* [https://serverfault.com/questions/397482/need-help-trouble-shooting-high-cpu-usage-by-php-fpm 1]
* https://serverfault.com/questions/397482/need-help-trouble-shooting-high-cpu-usage-by-php-fpm


== Ressourcenintensive Erweiterungen ==
== Erweiterungen ==
; Ressourcenintensive Erweiterungen anpassen
; Ressourcenintensive Erweiterungen anpassen
Komplexe Erweiterungen wie ‚‘'Semantic MediaWiki (SMW)‚‘' können beim Laden von Seiten zu einer erheblichen Serverbelastung führen.
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


* [https://hexshift.medium.com/step-by-step-guide-to-optimizing-mediawiki-performance-with-caching-and-profiling-391b5203d166 1]
; Abfrage-Caching
 
''Abfrage-Caching'' bei SMW aktivieren
Abfrage-Caching
* verhindert, dass komplexe semantische Abfragen bei jedem Besuch neu berechnet werden
 
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:


''LocalSettings.php''
  $smwgEnableCache = true;
  $smwgEnableCache = true;


== Deaktiviere unnötige Zähler ==
== Zähler ==
; Unnötige Zähler Deaktiviere
; Seitenzähler deaktivieren
Das Erfassen von Seitenaufrufen kann auf stark frequentierten Seiten zu einem sprunghaften Anstieg der CPU-Auslastung führen.
Erfassung der Seitenaufrufen kann auf stark frequentierten Seiten zu einem sprunghaften Anstieg der CPU-Auslastung führen
* [[mediawikiwiki:Topic:Rncjbh4poqojjt9k|1]]
* [[mediawikiwiki:Topic:Rncjbh4poqojjt9k]]
Werden keine Seitenstatistiken benötigt, kann der Seitenzähler deaktiviert werden


Wenn du keine Seitenstatistiken benötigst, kannst du den Seitenzähler deaktivieren, indem du Folgendes in <code>LocalSettings.php</code> einfügst:
; LocalSettings.php
$wgDisableCounters = true;
<syntaxhighlight lang="php" highlight="" copy>
$wgDisableCounters = true;
</syntaxhighlight>


== PHP-FPM / FastCGI ==
== PHP-FPM / FastCGI ==
; PHP-FPM / FastCGI optimieren
; PHP-FPM / FastCGI optimieren
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.
Wenn [[PHP-FPM]]-Prozesse übermäßig viel CPU-Leistung beanspruchen
* [[mediawikiwiki:Topic:U1sl12b4w1gkbh2k|1]]
* Laufzeit des Prozesses bgrenzen, bevor er recycelt wird, um Speicher freizugeben  
* [https://serverfault.com/questions/397482/need-help-trouble-shooting-high-cpu-usage-by-php-fpm 2]
** [[mediawikiwiki:Topic:U1sl12b4w1gkbh2k]]
 
** https://serverfault.com/questions/397482/need-help-trouble-shooting-high-cpu-usage-by-php-fpm
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


Eine umfassendere Anleitung zur Skalierung finden Sie im offiziellen [[mediawikiwiki:Manual:Performance_tuning|MediaWiki-Handbuch zur Leistungsoptimierung]]. [<nowiki/>[[mediawikiwiki:Manual:Performance_tuning|1]]]
; php-fpm.conf
<syntaxhighlight lang="bash" highlight="1" line copy>
pm.max_requests = 500
</syntaxhighlight>


* Welche ‚‘'Erweiterungen'‚‘ (wie Semantic MediaWiki) sind derzeit aktiv?
; Skalierung
* *[https://hexshift.medium.com/step-by-step-guide-to-optimizing-mediawiki-performance-with-caching-and-profiling-391b5203d166 1]
Anleitung zur Skalierung
* [[mediawikiwiki:Manual:Performance_tuning|MediaWiki-Handbuch zur Leistungsoptimierung]]
* [[mediawikiwiki:Manual:Performance_tuning|Manual:Performance_tuning]]


; 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


<noinclude>
<noinclude>

Aktuelle Version vom 17. Juni 2026, 20:18 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