Zum Inhalt springen

MediaWiki/Performance: Unterschied zwischen den Versionen

Aus Foxwiki
 
(47 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}}

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