Memcached lässt sich als Dienst auch in kleineren und mittleren Nextcloud-Installationen in Betrieb nehmen, und kann dadurch die Zugriffe von Anwendern deutlich beschleunigen. Wir zeigen in diesem Beitrag, wie Memcached auf Ubuntu installiert und mit Nextcloud verbunden wird. Außerdem weitere Verbesserungen für Nextcloud, die sicherstellen, dass der Betrieb von Memcached überhaupt relevant ist.
Das Hinterlegen und Abholen von Daten lässt sich mit der In-Memory-Speicherlösung Memcached beschleunigen. Die Open-Source-Software ist auch mit Nextcloud nutzbar.
(Bild: Flo - stock.adobe.com)
Was bringt Memcached für Nextcloud?
Memcached ist ein leistungsfähiger, verteilter In-Memory-Caching-Dienst, der vor allem in skalierbaren Webanwendungen zur Reduktion der Latenz und Entlastung von Datenbank-Backends eingesetzt wird. Das ist ideal für den Betrieb von Nextcloud. Technisch basiert Memcached auf einem einfachen Key-Value-Store, der Daten direkt im Hauptspeicher hält, wodurch der Zugriff auf diese Daten nahezu in Echtzeit erfolgt. Der Dienst nutzt einen non-blocking Netzwerkstack und arbeitet nach einem asynchronen Ereignismodell, das durch das Epoll- oder Kqueue-System der zugrundeliegenden Betriebssysteme unterstützt wird, um die maximale Parallelität und Ressourcenauslastung zu gewährleisten.
Eine der zentralen Eigenschaften von Memcached ist die konsistente Hashing-Strategie, die eine gleichmäßige Verteilung der Daten über alle verfügbaren Serverknoten sicherstellt und gleichzeitig eine minimale Reorganisation der Daten erforderlich macht, wenn Knoten zum Cluster hinzugefügt oder entfernt werden. Diese Eigenschaft ist entscheidend für die horizontale Skalierbarkeit von Memcached-Clustern. Memcached lässt sich aber auch lokal betreiben.
Memcached verwendet eine slab-basierte Speicherallokation, bei der der verfügbare Speicher in Klassen fester Größe unterteilt wird. Diese Technik minimiert die Fragmentierung des Speichers und optimiert die Nutzung des verfügbaren Arbeitsspeichers. Bei der Ablage von Daten sorgt Memcached durch das LRU-Prinzip (Least Recently Used) dafür, dass ältere, weniger häufig genutzte Daten automatisch aus dem Cache verdrängt werden, wenn der Speicherbedarf neuer Daten die Kapazität des Cache übersteigt.
In produktiven Umgebungen wird die Persistenz oft durch eine separate, persistentere Speicherschicht sichergestellt, während Memcached als schneller Cache dient. Durch diese Architektur eignet sich Memcached ideal für den Einsatz in Systemen, bei denen schnelle und häufige Zugriffe auf Daten erforderlich sind, wie beispielsweise bei der Zwischenspeicherung von Ergebnissen teurer Datenbankabfragen oder bei der Speicherung von Session-Daten in verteilten Webanwendungen.
Memcached in Ubuntu/Debian installieren
Der einfachste Weg zur Installation von Memcached auf Ubuntu ist der folgende Befehl:
sudo apt install memcached libmemcached-tools -y
Nach der Installation kann die Installation über den folgenden Befehl überprüft werden:
Ob der Dienst gestartet ist, lässt sich mit dem folgenden Befehl überprüfen:
systemctl status memcached
Memcached für Nextcloud anpassen
Wenn der Dienst läuft, muss Memcached noch angepasst werden. Das erfolgt über die Konfigurationsdatei /etc/memcached.conf. In der Konfigurationsdatei sollte zunächst der Startspeicher von 64 MB auf mindestens 1.024 MB erhöht werden. Das erfolgt über den Parameter -m 1024. Liegt genügend Arbeitsspeicher vor, kann der Wert auch erhöht werden.
Die Konfigurationsdatei von PHP erfordert ebenfalls Einstellungen, damit schlussendlich Verbesserungen mit Memcached auch etwas bringen. Die Datei www.conf ist im Verzeichnis der installierten PHP-Version zu finden, zum Beispiel in /etc/php/8.3/fpm/pool.d. Sinnvoll ist es hier bei pm.max_children den Wert auf mindestens 20 zu setzen, und bei pm.min_spare_servers den Wert ebenfalls auf 20 setzen, bei pm.max_spare_servers auf 60 bis 80. Das hängt letztlich von der Leistung der Hardware ab. Mit diesen Werten lässt sich die Leistung von Nextcloud in Verbindung mit Memcached, aber auch generell beschleunigen, wenn die Werte erhöht und angepasst sind.
Die Datei php.ini im Verzeichnis /etc/php/8.3/fpm bietet ebenfalls Verbesserungen für Nextcloud. Diese haben nichts direkt mit Memcached zu tun, aber wenn die Werte in der Datei php.ini nicht ideal sind, dann bringen schlussendlich die Optimierungen mit Memcached auch nicht viel. Zunächst sollte hier der Wert bei memory_limit auf mindestens 512M gesetzt werden, besser deutlich mehr, wenn der Server über genügend Arbeitsspeicher verfügt. Mit dem Standardwert kann Nextcloud noch nicht einmal sich selbst aktualisieren, weil der Arbeitsspeicher dafür nicht ausreicht. Das Gleiche gilt für upload_max_filesize. Auch hier sollte der Wert deutlich erhöht werden.
Leistungssteigerung mit OPcache
OPcache ist ein wichtiger Bestandteil zur Performance-Optimierung von PHP-basierten Anwendungen wie Nextcloud. Es handelt sich dabei um einen Bytecode-Cache, der die Zwischenspeicherung der kompilierten PHP-Skripte im Speicher ermöglicht. Dadurch wird vermieden, dass PHP bei jedem Seitenaufruf die Skripte erneut parsen und kompilieren muss, was die Ausführungszeit erheblich verkürzt. In einer Nextcloud-Installation trägt OPcache maßgeblich zur Reduktion der Latenzzeiten bei, insbesondere bei häufigen Zugriffen und großen Nutzerzahlen.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
Die Konfiguration von OPcache erfolgt in der php.ini und kann durch Parameter wie opcache.enable, opcache.memory_consumption und opcache.max_accelerated_files angepasst werden, um den Cache optimal an die Anforderungen der Nextcloud-Instanz anzupassen. Für eine optimale Performance sollte OPcache aktiviert sein und genügend Speicher zugewiesen bekommen, um die Kompilate aller häufig genutzten PHP-Skripte der Nextcloud-Installation im Cache zu halten. Dies reduziert die Serverlast und verbessert die Antwortzeiten, was insbesondere in größeren Installationen oder Umgebungen mit vielen gleichzeitigen Zugriffen von erheblichem Vorteil ist.
Bei opcache sollte opcache.enable auf „1“ gesetzt sein und kein Semikolon (;) vorhanden sein, der den Wert ausklammert. Außerdem sollte bei opcache.memory_consumption ebenfalls mindestens „512“ gesetzt sein, eher mehr. Sinnvoll ist darüber hinaus mindestens „96“ bei opcache.interned_strings_buffer. Der Wert bei opcache.max_accelerated_files sollte auch bei mindestens „100.000“ stehen. Bei opcache.max_wasted_percentage sollte der Wert auf etwa „15“ gesetzt sein. Interessant ist auch opcache.revalidate_freq mit einem Wert von „60“. Das sollte in der eigenen Umgebung aber getestet werden. Im unteren Bereich kann manuell der Wert opcache.jit=1255 gesetzt werden sowie opcache.jit_buffer_size=256M.
config.php anpassen und Nextcloud für Memcached anpassen
Im Verzeichnis config der Nextcloud-Installation befindet sich die Datei config.php mit der sich die Leistung von Nextcloud deutlich verbessern lässt, auch in Verbindung mit Memcached. Zur Verbesserung der Leistung spielen zunächst die Cache-Parameter eine Rolle. Auch hier lassen sich weitere Einstellungen vornehmen:
Memcached ist ein freies und quelloffenes, leistungsstarkes, verteiltes Speicher-Objekt-Caching-System. Es ist allgemein einsetzbar. Speziell wurde es jedoch dafür entwickelt, dynamische Webanwendungen zu beschleunigen, indem es die Datenbanklast verringert.
Memcached ist ein In-Memory Key-Value Store für kleine Datenblöcke (Zeichenfolgen, Objekte) aus Ergebnissen von Datenbankabfragen, API-Aufrufen oder Seitenrendering.
Der unter BSD-veröffentlichte, leistungsstarke Cache-Server lässt sich schnell implementieren und erleichtert die Entwicklung, um viele Probleme großer Datenchaches zu lösen. Seine API ist für die meisten gängigen Programmiersprachen verfügbar.