Zum Inhalt springen

MediaWiki/Performance: Unterschied zwischen den Versionen

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


== Beschreibung ==
== Beschreibung ==
; Ressourcen
[[Webserver]] und [[PHP]] genügend [[Arbeitsspeicher]] und [[CPU-Kapazität]] zuweisen


== Installation ==
; Caching-Tools
<syntaxhighlight lang="bash" highlight="1" line copy>
* [[Varnish]]
* [[Memcached]]
* https://www.mediawiki.org/wiki/Manual:Varnish_caching
 
; 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
* [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 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;
$wgParserCacheType = CACHE_ACCEL;
$wgSessionCacheType = CACHE_ACCEL;
</syntaxhighlight>
</syntaxhighlight>


== Aufruf ==
* [[mediawikiwiki:Manual:$wgMainCacheType]]
<syntaxhighlight lang="bash" highlight="1" line copy>
* https://hexshift.medium.com/step-by-step-guide-to-optimizing-mediawiki-performance-with-caching-and-profiling-391b5203d166
</syntaxhighlight>
* 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 <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
 
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
 
* https://serverfault.com/questions/397482/need-help-trouble-shooting-high-cpu-usage-by-php-fpm
 
== 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
 
; Abfrage-Caching
''Abfrage-Caching'' bei SMW aktivieren
* verhindert, dass komplexe semantische Abfragen bei jedem Besuch neu berechnet werden


=== Optionen ===
''LocalSettings.php''
{| class="wikitable sortable options gnu big"
$smwgEnableCache = true;
|-
! Unix !! GNU !! Parameter !! Beschreibung
|-
| || || ||
|-
|}


=== Parameter ===
== Zähler ==
=== Umgebungsvariablen ===
; Seitenzähler deaktivieren
=== Exit-Status ===
Erfassung der Seitenaufrufen kann auf stark frequentierten Seiten zu einem sprunghaften Anstieg der CPU-Auslastung führen
{| class="wikitable options col1center big"
* [[mediawikiwiki:Topic:Rncjbh4poqojjt9k]]
|-
Werden keine Seitenstatistiken benötigt, kann der Seitenzähler deaktiviert werden
! Wert !! Beschreibung
|-
| 0 || Erfolg
|-
| >0 || Fehler
|}


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


<!-- output -->
== PHP-FPM / FastCGI ==
<syntaxhighlight lang="bash" highlight="" line>
; 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
 
; php-fpm.conf
<syntaxhighlight lang="bash" highlight="1" line copy>
pm.max_requests = 500
</syntaxhighlight>
</syntaxhighlight>


=== Problembehebung ===
; Skalierung
Anleitung zur Skalierung
* [[mediawikiwiki:Manual:Performance_tuning|MediaWiki-Handbuch zur Leistungsoptimierung]]
* [[mediawikiwiki:Manual:Performance_tuning|Manual:Performance_tuning]]


== Konfiguration ==
; Erweiterungen
=== Dateien ===
Welche Erweiterungen (wie Semantic MediaWiki) sind aktiv?
{| class="wikitable options big"
* https://hexshift.medium.com/step-by-step-guide-to-optimizing-mediawiki-performance-with-caching-and-profiling-391b5203d166
|-
! Datei !! Beschreibung
|-
| ||
|-
| ||
|}


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


[[Kategorie:MediaWiki/Verwaltung]]
[[Kategorie:MediaWiki/Verwaltung]]
* Stellen Sie sicher, dass Ihrem Webserver und PHP genügend Arbeitsspeicher zugewiesen ist.
* Es gibt eine Vielzahl von Caching-Tools
** die in Verbindung mit MediaWiki (und miteinander) verwendet werden können, wie Varnish und Memcached.
Sie können alle Optionen für das Caching hier sehen:
* [https://www.mediawiki.org/wiki/Manual:Performance_tuning https://www.mediawiki.org/wiki/Manual:Performance_tuning ]
* Die Verwendung von Nginx oder Lighttpd als Webserver anstelle von Apache kann die Leistung für stark frequentierte Websites erheblich verbessern.
To reduce MediaWiki CPU load, offload server processing by enabling robust '''PHP OPcache''', installing '''APCu/Memcached''' object caching, and blocking resource-intensive bot crawlers. These changes prevent your server from constantly re-rendering pages and recompiling scripts on every visit. [[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. Enable PHP Caching (Essential)
PHP natively recompiles code on every page request. Caching these scripts drastically reduces CPU usage. [[https://www.mediawiki.org/wiki/Manual:Varnish_caching<nowiki> 1], [</nowiki>https://www.mediawiki.org/wiki/Manual:Performance_tuning 2]]* '''OPcache:''' Ensure OPcache is enabled in your <code>php.ini</code> file. Set <code>opcache.enable=1</code> and allocate adequate memory (e.g., <code>opcache.memory_consumption=128</code>).
* '''APCu:''' Install the APCu PHP extension for fast, local object 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]]
2. Configure MediaWiki Object & Main Cache
Stop MediaWiki from repeatedly hitting the database for frequently accessed data. [[https://hexshift.medium.com/step-by-step-guide-to-optimizing-mediawiki-performance-with-caching-and-profiling-391b5203d166 1]]* Open your <code>LocalSettings.php</code> file and add:
php
$wgMainCacheType = CACHE_ACCEL;
$wgParserCacheType = CACHE_ACCEL;
$wgSessionCacheType = CACHE_ACCEL;
Verwende Code mit Vorsicht.
[[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]]
3. Optimize Bots & Crawlers
Aggressive search engine bots can index dynamic pages (like <code>api.php</code> or <code>index.php?action=history</code>) and overwhelm your CPU. [[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]]* Create or update a strict <code>robots.txt</code> file in your main directory to block non-canonical URLs and system pages.
* Example rules: 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. Adjust Heavy Extensions
Complex extensions like '''Semantic MediaWiki (SMW)''' can add significant server overhead during page loads. [[https://hexshift.medium.com/step-by-step-guide-to-optimizing-mediawiki-performance-with-caching-and-profiling-391b5203d166 1]]* If using SMW, enable '''query caching''' to prevent re-calculating complex semantic queries every visit. Add this to <code>LocalSettings.php</code>:
php
$smwgEnableCache = true;
Verwende Code mit Vorsicht.
5. Disable Unnecessary Counters
Tracking page views can spike CPU usage on busier sites. [<nowiki/>[[mediawikiwiki:Topic:Rncjbh4poqojjt9k|1]]]* If you do not need site statistics, you can disable the page counter by adding the following to <code>LocalSettings.php</code>:
php
$wgDisableCounters = true;
Verwende Code mit Vorsicht.
6. Fine-Tune PHP-FPM / FastCGI
If your PHP-FPM processes are consuming excessive CPU due to heavy traffic, limit how long each process runs before being recycled to clear memory. [[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]]* In your <code>php-fpm.conf</code> or pool config, configure <code>pm.max_requests</code> to refresh processes (e.g., <code>pm.max_requests = 500</code>).
For a more comprehensive guide on scaling, consult the official [[mediawikiwiki:Manual:Performance_tuning|MediaWiki Performance Tuning Manual]]. [<nowiki/>[[mediawikiwiki:Manual:Performance_tuning|1]]]
If you would like, tell me more about your setup:* Are you using '''Apache or Nginx'''?
* What '''extensions''' (like Semantic MediaWiki) are currently active? [[https://hexshift.medium.com/step-by-step-guide-to-optimizing-mediawiki-performance-with-caching-and-profiling-391b5203d166 1]]


</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