Zum Inhalt springen

MediaWiki/Performance: Unterschied zwischen den Versionen

Aus Foxwiki
 
(43 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.
; Ressourcen
* Es gibt eine Vielzahl von Caching-Tools
[[Webserver]] und [[PHP]] genügend [[Arbeitsspeicher]] und [[CPU-Kapazität]] zuweisen
** die in Verbindung mit MediaWiki (und untereinander) verwendet werden können([[Varnish]] und [[Memcached]].


; Alle Optionen für das Caching  
; Caching-Tools
* [https://www.mediawiki.org/wiki/Manual:Performance_tuning https://www.mediawiki.org/wiki/Manual:Performance_tuning ]
* [[Varnish]]
* [[Memcached]]
* https://www.mediawiki.org/wiki/Manual:Varnish_caching


; Nginx oder Lighttpd
; CPU-Auslastung reduzieren
* Die Verwendung von Nginx oder Lighttpd als Webserver anstelle von Apache kann die Leistung stark frequentierter Websites erheblich verbessern.
* [[PHP]]
 
* [[OPcache]]
Um die CPU-Auslastung von MediaWiki zu reduzieren, entlasten Sie den Server, indem Sie
* PHP OPcache aktivieren,
* Objekt-Caching
* Objekt-Caching
* APCu/Memcached installieren  
* APCu/Memcached installieren  
* ressourcenintensive Bot-Crawler blockieren
* ressourcenintensive Bot-Crawler blockieren


; Ziele
; Alternative Webserver
Diese Änderungen verhindern, dass Ihr Server bei jedem Besuch Seiten ständig neu rendert und Skripte neu kompiliert
Nginx oder Lighttpd
* [https://www.mediawiki.org/wiki/Manual:Varnish_caching<nowiki> 1]
* Die Verwendung von Nginx oder Lighttpd als Webserver anstelle von Apache kann die Leistung stark frequentierter Websites erheblich verbessern
* [mediawikiwiki:Manual:Performance_tuning|2]
* [https://serverfault.com/questions/397482/need-help-trouble-shooting-high-cpu-usage-by-php-fpm 3]]


== PHP-Caching aktivieren ==
; 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-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<nowiki> 1]
* https://www.mediawiki.org/wiki/Manual:Varnish_caching
* [</nowiki>https://www.mediawiki.org/wiki/Manual:Performance_tuning 2]
* 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>


* [[https://www.mediawiki.org/wiki/Manual:$wgMainCacheType<nowiki> 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<nowiki> 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. [[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:
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


; Abfrage-Caching
''Abfrage-Caching'' bei SMW aktivieren
* verhindert, dass komplexe semantische Abfragen bei jedem Besuch neu berechnet werden
''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
* [https://www.mediawiki.org/wiki/Topic:U1sl12b4w1gkbh2k<nowiki> 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>).


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
 
* 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 lang="bash" highlight="1" line copy>
pm.max_requests = 500
</syntaxhighlight>
</syntaxhighlight>


== Aufruf ==
; Skalierung
<syntaxhighlight lang="bash" highlight="1" line copy>
Anleitung zur Skalierung
</syntaxhighlight>
* [[mediawikiwiki:Manual:Performance_tuning|MediaWiki-Handbuch zur Leistungsoptimierung]]
* [[mediawikiwiki:Manual:Performance_tuning|Manual:Performance_tuning]]


=== Optionen ===
; Erweiterungen
{| class="wikitable sortable options gnu big"
Welche Erweiterungen (wie Semantic MediaWiki) sind aktiv?
|-
* https://hexshift.medium.com/step-by-step-guide-to-optimizing-mediawiki-performance-with-caching-and-profiling-391b5203d166
! Unix !! GNU !! Parameter !! Beschreibung
|-
| || || ||
|-
|}
 
=== Parameter ===
=== Umgebungsvariablen ===
=== Exit-Status ===
{| class="wikitable options col1center big"
|-
! Wert !! Beschreibung
|-
| 0 || Erfolg
|-
| >0 || Fehler
|}
 
== Anwendung ==
<syntaxhighlight lang="bash" highlight="1" line copy>
</syntaxhighlight>
 
<!-- output -->
<syntaxhighlight lang="bash" highlight="" line>
</syntaxhighlight>
 
=== Problembehebung ===
 
== Konfiguration ==
=== Dateien ===
{| class="wikitable options big"
|-
! Datei !! Beschreibung
|-
| ||
|-
| ||
|}


<noinclude>
<noinclude>
Zeile 165: Zeile 140:
==== Projekt ====
==== Projekt ====
==== Weblinks ====
==== Weblinks ====
 
# https://www.mediawiki.org/wiki/Manual:Varnish_caching
<!--
<!--
{{DEFAULTSORT:new}}
{{DEFAULTSORT:new}}

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