Nextcloud/Memory caching
Nextcloud - Memory caching - Leistung des Nextcloud-Servers verbessern
Beschreibung
Leistung des Nextcloud-Servers mit Memory Caching verbessern
- Dabei werden häufig angefragte Objekte im Arbeitsspeicher abgelegt, um sie schneller abrufen zu können
Es gibt zwei Arten von Caches, die Sie verwenden können
- einen PHP-Opcode-Cache, der allgemein als Opcache bezeichnet wird, und einen
- Daten-Cache für Ihren Webserver, der allgemein als "Memcache" bezeichnet wird
- Hinweis
- Wenn Sie keinen lokalen Memcache installieren und aktivieren, sehen Sie eine Warnung auf Ihrer Nextcloud-Verwaltungsseite. Ein Memcache ist nicht erforderlich
- Sie können die Warnung ignorieren, wenn Sie dies wünschen
- Wenn Sie in Ihrer
config.php
nur einen verteilten Cache(memcache.distributed
) und keinen lokalen Cache(memcache.local
) aktivieren, werden Sie die Cache-Warnung trotzdem sehen
Ein PHP-Opcache speichert kompilierte PHP-Skripte, so dass sie nicht bei jedem Aufruf neu kompiliert werden müssen
- PHP bündelt den Zend OPcache seit Version 5.5 im Kern, so dass Sie keinen Opcache manuell installieren müssen
Das Datencaching wird vom Benutzer bereitgestellt
- Nextcloud unterstützt mehrere Speicher-Caching-Backends, so dass Sie die Art von Memcache wählen können, die Ihren Bedürfnissen am besten entspricht
- Caching-Backends
APCu, APCu 4.0.6 und höher erforderlich | Ein lokaler Cache für Systeme |
Redis, PHP-Modul 2.2.6 und höher erforderlich | Für lokales und verteiltes Caching sowie transaktionale Dateisperren |
Memcached | Für die verteilte Zwischenspeicherung |
Datencaches oder Memcaches müssen in Nextcloud explizit konfiguriert werden, indem Sie den gewünschten Cache installieren und aktivieren und dann den entsprechenden Eintrag in derconfig.php
hinzufügen (siehe Konfigurationsparameter für einen Überblick über alle möglichen Konfigurationsparameter)
Empfehlungen
Sie können sowohl einen lokalen als auch einen verteilten Cache verwenden
- Empfohlene Caches sind APCu und Redis
- Nachdem Sie den von Ihnen gewählten Memcache (Daten-Cache) installiert und aktiviert haben, überprüfen Sie, ob er aktiv ist, indem Sie die PHP-Version und -Informationen ausführen
Kleiner Server
Verwenden Sie nur APCu
'memcache.local' => '\OC\Memcache\APCu',
Einzel-Server
- Organisationen mit Einzel-Server
Verwenden Sie Redis für alles außer dem lokalen Memcache
'memcache.local' => '\OC\Memcache\APCu', 'memcache.distributed' => '\OC\Memcache\Redis', 'memcache.locking' => '\OC\Memcache\Redis', 'redis' => [ 'host' => 'localhost', 'port' => 6379, ],
Cluster-Setup
- Organisationen mit Cluster-Setups
Verwenden Sie APCu für den lokalen Cache und entweder Redis-Cluster ...
'memcache.local' => '\OC\Memcache\APCu', 'memcache.distributed' => '\OC\Memcache\Redis', 'memcache.locking' => '\OC\Memcache\Redis', 'redis.cluster' => [ 'seeds' => [ // provide some/all of the cluster servers to bootstrap discovery, port required 'cache-cluster:7000', 'cache-cluster:7001', ], ], ..
Memcached-Cluster für verteilte und sperrende Caches
'memcache.local' => '\OC\Memcache\APCu', 'memcache.distributed' => '\OC\Memcache\Memcached', 'memcache.locking' => '\OC\Memcache\Memcached', 'memcached_servers' => [ [ 'server1.example.com', 11211 ], [ 'server2.example.com', 11211 ], ], ..
- Hinweis
- Wenn Sie mehrere Webserver betreiben und in Ihrer
config.php
einen verteilten Cache(memcache.distributed
) oder einen File-Locking-Provider(memcache.locking
) aktivieren, müssen Sie sicherstellen, dass sie sich auf denselben memcache-Server/Cluster beziehen und nicht auflocalhost
oder einen Unix-Socket
Redis vs. APCu
- Hinweise zu Redis vs. APCu zum Thema Speichercaching
- APCu ist beim lokalen Caching schneller als Redis
- Wenn Sie genügend Speicher haben, verwenden Sie APCu für das Memory Caching und Redis für das File Locking
- Wenn Sie wenig Speicherplatz haben, verwenden Sie Redis für beides
Redis
Memcached
Cache-Verzeichnis
- Ort des Cache-Verzeichnisses
Das Cache-Verzeichnis ist standardmäßig data/$user/cache
, wobei $user
der aktuelle Benutzer ist
- Sie können die Direktive
"cache_path"
inconfig.php
(siehe Konfigurationsparameter) verwenden, um einen anderen Speicherort auszuwählen