Manual:Cache/de

MediaWiki ist eine sehr komplexe Webanwendung, dies bedeutet dass es einige Zeit dauern kann, um Seiten darzustellen. Um diese Kosten zu mindern, installieren viele MediaWiki Administratoren eine von vielen Caching-Lösungen. Sie sind keineswegs zwingend, obwohl sie die Zeit um Seiten zu laden reduzieren können und Server-Auslastung zu verringern. Diese Seite ist in vier Abschnitte unterteilt, um alles zwischenzuspeichern, müssen Sie eine Lösung aus jeder Gruppe ermöglichen. Es ist sehr wahrscheinlich, dass Sie nicht zu zwischenspeichern brauchen, ermöglichen Sie einfach Dinge die Sie benötigen, bis Sie eine akzeptable Leistung haben.

Kurzversion: wir empfehlen die Verwendung von APC und memcached; für Interessierte, dass ist derzeit das was die Wikimedia Foundation für Wikipedia et al verwendet. Siehe "Wie macht man MediaWiki schnell" und "MediaWiki Leistungsabstimmung".

PHP-Zwischenspeicherung
PHP funktioniert durch die Umwandlung einer PHP-Datei in Bytecode, der anschließend ausgeführt wird. Der Prozess der Compilierung der Datei zu Bytecode dauert einige Zeit. PHP-Beschleuniger speichern den kompilierten Bytecode und führen ihn direkt aus. Dadurch verringern sie den Zeitaufwand für das Kompilieren von Code. Beispiele für PHP-Beschleuniger


 * APC (Alternative PHP Zwischenspeicher). Diesen gibt es als Paket aus vielen Linux-Distributionen (z.B. Ubuntu 10.04) oder von PECL; die Nutzung wird empfohlen.
 * PHP-Beschleuniger
 * eAccelerator - Jede Version von eAccelerator wird für PHP-Zwischenspeicherung funktionieren, aber wenn Sie es auch für Objektzwischenspeicherung verwenden wollen, benötigen Sie Version 0.9.5 (neuere Versionen sind nicht kompatibel).  Unterstützung für eAccelerator wird ab MediaWiki 1.19 eingestellt.
 * XCache - Nach der Debian Installion mit apt-get install php5-xcache setze xcache.var_size auf >0M (z.B. 16M), sonst kann es zu einem Fehler führen.

MediaWiki muss nicht konfiguriert werden, um PHP zwischen zu speichern, und wird "einfach funktionieren", wenn Sie einen Cache installieren. Sie können mit phpinfo überprüfen, ob der Zwischenspeicher installiert und richtig konfiguriert ist. Weitere Informationen erhalten Sie von diesen Projekten, oder suchen Sie diese Informationen per Google.

Objekt-Zwischenspeicherung
Wenn MediaWiki eine Seite aufbaut, um sie einem Benutzer anzuzeigen, führt diese Datenbankabfragen aus um viele verschiedene Stücke von Daten zu sammeln und fasst sie dann alle in der Seite zusammen. Objekt-Zwischenspeicherung erlaubt MediaWiki, diese kombinierten Objekte für den späteren Abruf zu speichern, um den Zeitaufwand für die Kommunikation mit der Datenbank und dem Seitenaufbau zu reduzieren. Dies ist wohl der wichtigste Zwischenspeicher für die meisten Installationen. MediaWiki kann die zwischengespeicherten Objekte in einer Reihe von verschiedenen Orten, einschließlich auf einem Dateisystem, in der Datenbank, oder in einem externen Zwischenspeicherungssystem wie Memcached, APC, eAccelerator, oder XCache speichern.


 * Auf einem einzelnem Server


 * Wenn Sie einen PHP-Bytecode-Zwischenspeicher haben, siehe PHP-Zwischenspeicherung oben, können Sie diesen einfach benutzen, um alle zusätzlichen Daten zu speichern. Dies ist dringend empfohlen und erfordert die folgende Zeile in LocalSettings.php:
 * Wenn Sie nicht in der Lage sind, einen solchen Zwichenspeicher zu verwenden, dann könnten Sie in der Lage sein, memcached zu verwenden, siehe diese Seite für weitere Details. Dies ist wesentlich komplizierter, aber immer noch sehr effektiv.
 * Die beiden anderen Arten von Objekt-Zwischenspeicher, verwenden eine Datenbank für die Zwischenspeicherung. Dies kann (oder auch nicht) besser als nichts sein, aber eine der beiden vorherigen Lösungen sollten zunächst versucht werden.
 * Die beiden anderen Arten von Objekt-Zwischenspeicher, verwenden eine Datenbank für die Zwischenspeicherung. Dies kann (oder auch nicht) besser als nichts sein, aber eine der beiden vorherigen Lösungen sollten zunächst versucht werden.

Bei Verwendung von CACHE_DBA werden diese in $wgTmpDirectory abgelegt. Dieses Verzeichnis muss beschreibbar sein.

Wenn Sie mehrere Applikationsserver haben, auf denen MediaWiki in einer Lastausgleich-Konfiguration läuft, müssen Sie memcached verwenden, die detaillierten Anweisungen sind auf dieser Seite.
 * Auf mehreren Servern

Wenn Sie $wgMainCacheType setzen, dann werden es die Werte für $wgParserCacheType und $wgMessageCacheType übernehmen. Sie brauchen diese Variablen nicht setzen, es sei denn Sie planen etwas sehr weit fortgeschrittenes.


 * Zwischenspeicherung deaktivieren

Zwischenspeicherung lokalisieren

 * Seit 1.16

Nach der Feststellung, dass eine Vielzahl der zwischengespeicherten Objekte oberhalb der Schnittstellennachrichten waren, als auch das die Bits des Textes kein Inhalt sind, wurde ein fortgeschrittener Lokalisierungsspeicher eingeführt. Setzen Sie $wgCacheDirectory in LocalSettings.php zu einem gültigen Pfad, um es zu nutzen.

Seitenzwischenspeicherung
Sobald die gesamte Seite wiedergegeben wurde, ist es oft mehrmals dienlich, identisch mit nicht-angemeldeten Benutzern. Es besteht keine Notwendigkeit, MediaWiki zu bitten sich zu wiederholen.

Auf einem Einzelserver
Sie können Varnish/Squid verwenden oder Sie nutzen jede Unterstützung, die Ihr Webserver für HTTP-Zwischenspeicherung hat. Falls dies keine Option ist, zum Beispiel Sie sind auf einem gemeinsamen Host, dann erwägen Sie, den Dateizwischenspeicher, detaillierte Anweisungen sind auf dieser Seite.

Auf mehreren Servern
Wenn Sie mehrere Applikationsserver haben, auf denen MediaWiki in einer Lastenausgleich-Konfiguration läuft, verwenden Sie einen vorhandenen HTTP-Level Zwischenspeicher, wie Varnish oder Squid.

Siehe auch

 * Manual:Configuration settings/de
 * Cache Strategie
 * Wikimedia Server
 * PHP Zwischenspeicherung und Optimierung
 * Manual:File cache/de - Optional vereinfachende Regelung für die Zwischenspeicherung des gerenderten HTML von Artikelseiten.
 * Leitfaden über Objektzwischenspeicher mit Saetta Web Server und Mediawiki
 * Manual:Varnish caching/de
 * Manual:Squid caching/de
 * Wie kann ich eine zwischengespeicherte Seite bereinigen?
 * Wie kann ich Zwischenspeicherung vollständig deaktivieren?