Nextcloud-Performance optimieren: Wenn die Wolke lahmt
Nextcloud ist eine beeindruckende Plattform. Sie vereint Filesharing, Kalender, Kontakte, Kollaboration und viele weitere Funktionen in einem selbst gehosteten Ökosystem. Doch mit steigender Nutzerzahl und wachsenden Datenmengen kann aus der vermeintlich fliegenden Wolke schnell ein zäher Nebel werden. Besonders Administratoren, die von einem reibungslosen Betrieb abhängig sind, kennen das Problem: Die Oberfläche reagiert träge, Uploads dauern, Synchronisationen brechen ab. Dabei zeigt sich immer wieder: Die Ursachen sind oft hausgemacht – und mit gezielten Eingriffen behebbar.
Dieser Artikel richtet sich an alle, die Nextcloud nicht nur betreiben, sondern auch verstehen wollen. Wir steigen tief in die Materie ein, ohne uns in Buzzwords zu verlieren. Es geht um konkrete Stellschrauben: von der Datenbank über den Webserver bis hin zur Storage-Architektur. Nicht alles ist für jeden Anwendungsfall relevant – aber wer die Zusammenhänge kennt, kann gezielt optimieren. Und das ist am Ende günstiger, als einfach nur mehr Hardware nachzukaufen.
Hardware ist nur die halbe Miete
Bevor wir uns in Software-Konfigurationen stürzen, ein kurzer Blick auf die Basis. Nextcloud ist kein leichtgewichtiges System. Der PHP-Hintergrunddienst, die Datenbankabfragen und vor allem die Dateiverarbeitung fordern CPU, RAM und vor allem I/O-Leistung. Viele Admins setzen auf virtuelle Maschinen mit Shared Storage – und wundern sich dann über Performance-Einbrüche. Ein interessanter Aspekt: Die Latenz des Speichers ist oft der Flaschenhals, nicht die reine Prozessorleistung.
Ein Beispiel: Wer Nextcloud auf einer Shared-Hosting-Umgebung mit langsamen Festplatten betreibt, wird selbst mit 16 Kernen und 32 GB RAM keine Wunder erleben. Die Datenbank, die Caches und vor allem die Dateioperationen brauchen schnelle, direkte Zugriffe. Eine NVMe-SSD im Server, möglichst dediziert, ist kein Luxus, sondern eine Grundvoraussetzung für ernsthafte Nutzung. Nicht zuletzt zeigt sich in der Praxis, dass auch die Netzwerkanbindung eine Rolle spielt – vor allem, wenn Nextcloud hinter einem Reverse-Proxy oder Loadbalancer hängt.
Dennoch: Hardware-Upgrades allein lösen das Problem selten. Nextcloud ist softwaregetrieben, und die Konfiguration entscheidet über Wohl oder Wehe. Wir beginnen mit dem Herzstück jeder dynamischen Webanwendung: der Datenbank.
Datenbank: Der unterschätzte Engpass
Nextcloud setzt standardmäßig auf MySQL oder MariaDB. PostgreSQL wird ebenfalls unterstützt, ist aber seltener anzutreffen. Die Datenbank ist für fast jede Anfrage zuständig: Benutzerverwaltung, Dateimetadaten, Freigaben, Aktivitäten, Vorschaubilder – alles landet in Tabellen. Wenn die Datenbank langsam ist, kann Nextcloud nicht schnell sein. Dabei übersehen viele Admins, dass die Standardkonfiguration von MySQL/MariaDB oft nicht für eine Nextcloud-Instanz optimiert ist. Die Datenbank wird mit den Default-Werten ausgeliefert, die für kleine Webseiten oder Testumgebungen passen, aber nicht für eine produktive Cloud.
Ein typischer Fehler: zu kleine Puffergrößen. innodb_buffer_pool_size sollte bei einem dedizierten Datenbankserver 70-80% des verfügbaren RAMs betragen. Klingt viel, ist aber sinnvoll, denn InnoDB hält die häufig genutzten Daten im Speicher. Bei Nextcloud sind das vor allem die Tabellen oc_filecache, oc_storages und oc_share. Ein weiterer Parameter ist innodb_log_file_size. Der Standardwert von 48 MB ist für intensiven Schreibbetrieb viel zu klein. Ein Wert von 512 MB oder 1 GB reduziert die Anzahl der Log-Flushes und verbessert die Schreibleistung spürbar.
Auch die query_cache_size ist ein zweischneidiges Schwert. In neueren MariaDB-Versionen ist der Query Cache standardmäßig deaktiviert, weil er unter Last sogar kontraproduktiv sein kann. Nextcloud profitiert eher von gutem Indexing und schnellen Festplatten. Wer ältere MySQL-Versionen nutzt, sollte den Query Cache entweder deaktivieren oder nur mit kleinen Werten arbeiten – aber das ist ein Kapitel für sich.
Ein weiterer Punkt: Die Verwendung von utf8mb4 als Zeichensatz ist für Nextcloud zwingend erforderlich. Das kostet etwas mehr Speicherplatz, aber das ist vernachlässigbar. Wichtiger ist, dass die Datenbank regelmäßig gewartet wird. OPTIMIZE TABLE ist bei InnoDB nicht mehr nötig, aber ANALYZE TABLE hilft dem Optimizer bei der Wahl der richtigen Ausführungspläne. Und ja, ein regelmäßiger mysqlcheck sollte auf dem Zettel stehen – aber nicht während der Hauptgeschäftszeit.
In der Praxis hat sich bewährt, die Datenbank auf einem separaten Server oder zumindest einer eigenen VM zu betreiben. Das entlastet den Nextcloud-Server und erlaubt eine gezielte Ressourcenzuteilung. Aber Vorsicht: Die Netzwerklatenz zwischen App-Server und Datenbank darf nicht zu hoch sein. Jede Millisekunde zählt. Daher ist ein lokaler Datenbankserver oft die bessere Wahl, auch wenn das Skalierungsfantasien einschränkt.
PHP und Webserver: Die richtige Balance
Nextcloud ist in PHP geschrieben – das ist Fluch und Segen zugleich. PHP ist schnell, wenn es richtig konfiguriert ist, aber es kann auch zum Bremsklotz werden. Der erste Hebel ist die PHP-Version. Nextcloud unterstützt offiziell PHP 8.0, 8.1 und 8.2. Mit jeder Version wurden Performance-Verbesserungen eingeführt. Besonders PHP 8.1 und 8.2 bringen JIT-Compiler (Just-in-Time) mit, der rechenintensive Operationen beschleunigen kann. Allerdings: Der JIT bringt nur etwas bei Code, der oft ausgeführt wird. Für Nextcloud mit seinen vielen verschiedenen Anfragen ist der Effekt nicht riesig, aber messbar.
Wichtiger ist die Konfiguration des PHP-FPM-Pools. Die Parameter pm.max_children, pm.start_servers, pm.min_spare_servers und pm.max_spare_servers bestimmen, wie viele PHP-Prozesse parallel laufen. Zu wenige Prozesse führen zu Wartezeiten, zu viele fressen RAM und können den Server überlasten. Faustregel: Jeder PHP-Prozess benötigt etwa 30-50 MB RAM. Bei 8 GB RAM und Nextcloud plus anderer Dienste sind 150-200 Prozesse realistisch. Wer mehr Nutzer hat, muss aufpassen. Ein dynamischer Pool mit pm = dynamic ist meist sinnvoll, aber bei hoher Last kann pm = ondemand den Speicherverbrauch senken – allerdings auf Kosten der Reaktionszeit, weil erst ein Prozess gestartet werden muss.
Der Webserver selbst: Apache mit mod_php ist nicht zu empfehlen. Nginx als Reverse-Proxy mit PHP-FPM ist der Standard für Nextcloud. Nginx ist ressourcenschonend und bewältigt viele gleichzeitige Verbindungen. Die Konfiguration sollte unbedingt Caching für statische Dateien wie CSS, JavaScript und Bilder aktivieren. Nextcloud liefert eine .htaccess für Apache mit, aber wer Nginx nutzt, muss die Regeln selbst setzen – das offizielle Nextcloud-Handbook gibt eine gute Vorlage.
Ein oft übersehener Punkt: max_execution_time und max_input_time in PHP. Bei großen Uploads oder aufwändigen Operationen (z.B. Vorschaubilder-Generierung) kann das Skript abbrechen. 3600 Sekunden (eine Stunde) sind ein guter Wert für produktive Umgebungen. Auch upload_max_filesize und post_max_size müssen auf die maximal erwarteten Dateigrößen abgestimmt sein. Aber das ist eher Grundwissen.
Caching: Der Turbo für jede Anfrage
Nextcloud ist stark abhängig von Caching. Ohne Caching muss jeder Request die Datenbank befragen, Session-Daten laden und Konfigurationen parsen. Das kostet Zeit. Die Lösung heisst: einen Memory-Cache wie Redis oder APCu verwenden. Nextcloud unterstützt mehrere Caching-Backends. APCu ist einfach einzurichten, aber nur für den lokalen Cache geeignet. Redis hingegen kann auch als Session-Handler und für den Transactional File Locking (File Locking) verwendet werden. Gerade File Locking ist wichtig, um Kollisionen bei gleichzeitigen Schreibzugriffen zu vermeiden.
Die Installation von Redis ist simpel. Ein apt install redis-server und die Konfiguration in config.php mit 'memcache.local' => '\OC\Memcache\APCu' und 'memcache.distributed' => '\OC\Memcache\Redis' reicht oft schon aus. Der Redis-Server sollte auf dem gleichen Host laufen, um Latenzen zu vermeiden. Bei großen Installationen kann ein eigener Redis-Cluster sinnvoll sein, aber der Aufwand lohnt sich nur ab mehreren hundert Nutzern.
Ein interessanter Aspekt: Das Caching von Dateioperationen. Nextcloud speichert Metadaten im Cache, aber die Dateien selbst liegen auf dem Speicher. Wenn der Cache leer ist, muss jeder Lesevorgang die Datenbank fragen und dann die Datei lesen. Ein guter Cache kann die durchschnittliche Antwortzeit um den Faktor 3-5 senken. Das merkt man besonders beim Laden der Dateiliste im Webinterface. Ein weiterer Punkt: Der OpCache von PHP sollte aktiviert sein und ausreichend groß dimensioniert werden. opcache.memory_consumption=256 und opcache.max_accelerated_files=10000 sind empfehlenswert. Das beschleunigt die PHP-Ausführung selbst.
Speicher und Dateisystem: Die Qual der Wahl
Nextcloud kann auf verschiedenen Speicher-Backends laufen: lokale Festplatten, NFS, S3-kompatible Objektspeicher, Samba-Freigaben und mehr. Jedes Backend hat seine Eigenheiten. Lokale SSDs sind die beste Wahl, aber oft nicht skalierbar. NFS ist bequem, aber die Latenz kann Probleme machen. S3-Objektspeicher sind skalierbar, aber die API-Aufrufe kosten Zeit und oft auch Geld. Die Wahl des richtigen Speichers ist eine grundsätzliche Entscheidung.
Viele Admins setzen auf NFS, weil sie vorhandene Storage-Systeme weiterverwenden wollen. Das kann funktionieren, aber Nextcloud ist empfindlich gegenüber Latenz. Bei NFS sollte man unbedingt die Mount-Optionen optimieren: noatime, nodiratime, rsize=1048576, wsize=1048576 und hard,intr sind ein guter Start. Außerdem sollte der NFS-Server selbst ausreichend dimensioniert sein. Wenn mehrere Nextcloud-Instanzen auf denselben NFS-Export zugreifen, können Locking-Probleme auftreten. Nextcloud unterstützt dann File Locking über Redis, aber die Performance leidet trotzdem.
S3-kompatible Speicher wie MinIO oder Ceph sind eine moderne Alternative. Sie entkoppeln Speicher und Rechenleistung und erlauben horizontale Skalierung. Allerdings: Jeder Dateizugriff (auch das Auflisten von Ordnern) erfordert HTTP-Requests. Das kann bei vielen kleinen Dateien (z.B. bei einer Nextcloud-Instanz mit vielen Nutzern und vielen Dateien) zu erheblichen Verzögerungen führen. Hier hilft ein lokaler Cache auf SSD-Basis, der die häufigsten Dateien puffert. Nextcloud selbst bietet keine integrierte Cache-Schicht für S3, aber Drittanbieter wie CDN oder Storage-Gateways können Abhilfe schaffen.
Ein Tipp aus der Praxis: Das Dateisystem, auf dem Nextcloud läuft, sollte mit noatime gemountet sein. Das vermeidet unnötige Schreibzugriffe bei Lesevorgängen. Auch die Wahl des Dateisystems spielt eine Rolle. XFS und ext4 sind weit verbreitet und gut geeignet. Btrfs oder ZFS bieten zusätzliche Funktionen wie Snapshots, können aber bei intensiver I/O-Last mehr CPU fordern. Wer auf einem NAS mit Btrfs arbeitet, sollte die Nextcloud-Daten als separates Subvolume anlegen, um Snapshot-Overhead zu vermeiden.
Nextcloud-Konfiguration: Feinjustierung für den Alltag
Die Datei config.php ist das zentrale Steuerungsinstrument. Viele Performance-relevante Einstellungen sind dort hinterlegt. Ein Klassiker: 'preview_max_x' und 'preview_max_y'. Standardmäßig generiert Nextcloud Vorschaubilder bis 4096 Pixel. Das ist für die meisten Anwendungen übertrieben. Reduziert man die maximale Auflösung auf 1024 oder 2048 Pixel, sinkt der Rechenaufwand enorm. Auch die Anzahl der gleichzeitig generierten Vorschaubilder ist begrenzbar mit 'preview_concurrency_new'. Wer viele Benutzer mit großen Dateien hat, sollte die Vorschaubild-Generierung auf einen Hintergrund-Job auslagern (Cron). Das verhindert, dass der Webserver bei jedem Datei-Upload in die Knie geht.
Ein weiterer Parameter ist 'enable_file_metadata'. Die Extraktion von Metadaten aus Bildern und Dokumenten kostet Zeit. Wer diese Funktion nicht zwingend benötigt, kann sie deaktivieren. Auch der Parameter 'log_rotate_size' und das Loglevel sollten angepasst werden. Im Produktivbetrieb ist 'loglevel' => 2 (Warnungen und Fehler) ausreichend. Debug-Logs sollten nur temporär aktiviert werden. Der Log-Dateipfad sollte auf eine schnelle SSD zeigen – oder besser auf syslog, um I/O zu sparen.
Nicht zuletzt: Die Einstellungen zum Hintergrund-Job. Nextcloud unterstützt AJAX, Webcron und System-Cron. System-Cron ist die einzig sinnvolle Wahl. AJAX wird bei jedem Seitenaufruf gestartet und belastet den Webserver unnötig. Webcron ist ein Kompromiss, aber Cron ist zuverlässiger. Der Cron-Job sollte alle 5 Minuten laufen. Dabei wird empfohlen, den Job mit dem Benutzer des Webservers auszuführen, um Rechteprobleme zu vermeiden. Der Befehl php -f /var/www/nextcloud/cron.php ist der Standard – aber wer viele Apps installiert hat, sollte prüfen, ob die Cron-Laufzeit ausreicht. Bei sehr großen Instanzen kann es sinnvoll sein, mehrere parallele Cron-Jobs zu starten oder auf eine Queue wie RabbitMQ zu setzen. Aber das ist dann eher Enterprise-Niveau.
Client-Optimierung: Die andere Seite der Medaille
Oft wird vergessen, dass die Client-Software ebenfalls einen Einfluss auf die gefühlte Performance hat. Der Nextcloud Desktop-Client synchronisiert Dateien im Hintergrund und kann dabei den Server mit vielen kleinen Anfragen belasten. Eine Optimierung auf Client-Seite ist daher nicht nur für den Benutzer angenehm, sondern entlastet auch den Server. Der Client bietet Einstellungen wie die Begrenzung der Bandbreite (Upload/Download) und die Anzahl paralleler Verbindungen. Bei vielen Dateien und langsamen Verbindungen kann es helfen, die maximale Anzahl der parallelen Uploads zu reduzieren – von 8 auf 4 oder 2. Auch die Größe der Chunks (Teilstücke beim Upload) kann angepasst werden. Standard sind 10 MB. Auf NFS oder S3 können kleinere Chunks sinnvoll sein, um die Latenz zu reduzieren, aber das ist ein Testfall.
Auch der mobile Client (iOS/Android) ist nicht ohne. Push-Benachrichtigungen und Hintergrund-Synchronisation können Akku und Datenvolumen belasten, aber für die Serverlast sind sie meist vernachlässigbar. Allerdings: Wenn viele Nutzer ständig neue Dateien hochladen, kann das den Server in die Knie zwingen. Eine mögliche Lösung ist die Aktivierung der „End-to-End Encryption“ – aber das hat andere Nachteile (keine Serverseite Suche, höhere CPU-Last).
Ein Tipp aus der Redaktion: Der Nextcloud-Desktop-Client hat eine Funktion namens „Virtuelles Laufwerk“ (Virtual Files). Sie erlaubt es, Dateien nur bei Bedarf herunterzuladen. Das reduziert die Menge an Daten, die dauerhaft synchronisiert werden müssen, und entlastet den Server bei vielen Clients. Allerdings ist das Feature nicht auf allen Plattformen gleich gut integriert. Unter Windows klappt es gut, unter Linux und macOS gibt es Einschränkungen. Aber für große Teams ist es ein Segen.
Monitoring und kontinuierliches Tuning
Performance-Optimierung ist kein einmaliges Projekt. Sie erfordert regelmäßige Überwachung und Anpassung. Nextcloud selbst liefert einige interne Metriken über die Admin-Oberfläche, aber die sind oft zu grob. Empfehlenswert ist ein externes Monitoring: Prometheus und Grafana sind der Standard in der Szene. Es gibt fertige Exporteure für Nextcloud, die Metadaten wie Anzahl der Dateien, Datenbankgröße, Cache-Trefferraten, PHP-FPM-Status und Systemauslastung sammeln. Damit lassen sich Trends erkennen, bevor sie zum Problem werden.
Ein interessanter Aspekt: Die Überwachung der Datenbank-Slow-Queries. MySQL/MariaDB können alle Queries, die länger als eine bestimmte Zeit dauern, in ein Log schreiben. Mit slow_query_log = 1 und long_query_time = 2 (Sekunden) findet man die Queries, die am meisten Zeit fressen. Oft sind es Abfragen auf die oc_filecache-Tabelle, die nicht richtig indiziert sind. Nextcloud aktualisiert bei jedem Update die Indizes, aber bei großen Datenmengen kann es vorkommen, dass ein Index fehlt oder ein alter Index die Performance beeinträchtigt. Ein Blick in die MySQL-Dokumentation und die Nextcloud-Community-Foren hilft hier weiter.
Auch das PHP-FPM-Status-Modul gibt Aufschluss: Die Anzahl der aktiven Prozesse, die Warteschlange und die maximale Anzahl der Kinder. Wer einen pm.max_children erreicht hat, sieht sofort, dass mehr Ressourcen benötigt werden. Oder dass die Anzahl der PHP-Prozesse reduziert werden muss, um den Server nicht zu überlasten. Das ist ein ständiger Balanceakt.
App-spezifische Optimierungen: Weniger ist mehr
Nextcloud bietet eine riesige Auswahl an Apps. Viele davon sind nützlich, aber jede App erhöht die Komplexität und oft auch die Last. Die App „Talk“ beispielsweise benötigt ein eigenes Signaling-System und Turn-Server. Die App „Collabora Online“ ist ein ganzer Office-Server im Hintergrund. Wer nicht alle Funktionen braucht, sollte Apps deaktivieren. Das reduziert nicht nur die Anzahl der Datenbankabfragen, sondern auch die Angriffsfläche. Eine gute Faustregel: Installiere nur Apps, die tatsächlich genutzt werden. Das hört sich banal an, wird aber oft vernachlässigt. Besonders bei Updates kann eine überladene App-Installation zu Konflikten und Performance-Einbrüchen führen.
Eine App, die immer wieder Probleme macht, ist „Activity“. Sie protokolliert jede Änderung in der Cloud. Das ist praktisch, aber bei vielen Nutzern und Dateien kann die Aktivitätsdatenbank innerhalb weniger Wochen auf Millionen von Einträge wachsen. Hier hilft die Konfiguration der Aufbewahrungsdauer: Standardmäßig werden Aktivitäten 30 Tage aufbewahrt. Für die meisten Anwendungen ist das ausreichend. Wer die Daten länger braucht, sollte über eine separate Datenbank oder eine Aggregation nachdenken. Andernfalls leidet die Performance beim Laden der Aktivitätsseite spürbar.
Auch die App „Preview Generator“ ist ein zweischneidiges Schwert. Standardmäßig generiert Nextcloud Vorschaubilder on-the-fly beim ersten Zugriff. Das führt zu Verzögerungen, wenn ein Nutzer einen Ordner mit vielen Fotos öffnet. Ein Preview Generator kann alle Vorschaubilder im Voraus erstellen – aber das kostet einmalig viel CPU und Speicherplatz. In der Praxis hat sich bewährt, den Preview Generator nur für bestimmte Ordner (z.B. Bilder-Ordner) zu aktivieren und die Generierung auf Zeiten mit geringer Last zu legen (z.B. nachts per Cron). Das ist ein guter Kompromiss.
Skalierung: Wenn eine Instanz nicht mehr reicht
Irgendwann ist der Punkt erreicht, an dem Single-Server-Optimierung nicht mehr ausreicht. Dann muss Nextcloud horizontal skaliert werden. Das ist nicht trivial, denn Nextcloud ist nicht per se für Multi-Server-Betrieb ausgelegt. Aber mit etwas Aufwand geht es. Die Grundlage ist ein gemeinsamer Speicher (z.B. NFS oder S3) und eine gemeinsame Datenbank (MySQL-Cluster oder Galera). Die PHP-App-Server können dann hinter einem Loadbalancer (z.B. HAProxy oder Nginx) betrieben werden. Der Cache (Redis) muss ebenfalls zentral oder geclustert sein.
Ein häufiger Fehler bei der Skalierung: Die Verwendung von local Caches (APCu) auf jedem Server. Das führt zu Inkonsistenzen, weil jeder Server einen eigenen Cache hat. Stattdessen muss der verteilte Cache (Redis) alle relevanten Daten halten. Auch die Session-Daten müssen über Redis geteilt werden. Nextcloud unterstützt das mit der Konfiguration 'memcache.distributed' und 'redis.session_handler' => true. Dann können Nutzer auf verschiedenen Servern arbeiten, ohne dass die Session verloren geht.
Ein interessanter Aspekt: Die Datenbank-Skalierung ist oft der Flaschenhals. Ein Galera-Cluster mit drei Knoten kann Leselast gut verteilen, aber Schreibvorgänge müssen auf allen Knoten repliziert werden. Das erhöht die Latenz. Für Nextcloud, das viele Schreiboperationen hat (Datei-Uploads, Metadaten-Änderungen, Aktivitäten), kann das kritisch sein. Manche Setups nutzen daher einen Master-Slave-Verbund, bei dem Lesevorgänge auf Slaves und Schreibvorgänge auf den Master gehen. Das ist mit Nextcloud möglich, aber die Konfiguration ist komplex. In der Praxis sind viele Nextcloud-Installationen mit einem einzigen starken Datenbankserver besser bedient als mit einem suboptimal konfigurierten Cluster.
Fehlerbehebung: Typische Probleme und ihre Lösungen
Zum Abschluss ein kleiner Katalog von häufigen Performance-Problemen, die in der Praxis immer wieder auftauchen. Ein Klassiker: Die Wartezeit beim ersten Laden des Webinterface ist sehr lang. Das liegt oft an fehlendem OpCache oder an zu vielen Apps. Ein weiterer Klassiker: Der Upload großer Dateien bricht ab. Ursache ist meist die max_execution_time oder client_max_body_size in Nginx. Wer große Dateien (z.B. 10 GB) hochladen will, muss auch den PHP-Wert max_input_time anpassen und die PHP-FPM-Pool-Größe erhöhen. Sonst wird der Upload nach 30 Sekunden abgebrochen.
Ein anderes Problem: Die Synchronisation mit dem Desktop-Client hängt bei vielen Dateien. Das deutet oft auf eine überlastete Datenbank oder einen fehlenden Cache hin. Besonders die Dateilisten-Abfrage kann bei vielen Dateien (100.000+) langsam werden. Hier hilft ein Index auf die Spalten path und name in der Tabelle oc_filecache. Nextcloud sollte solche Indizes selbst setzen, aber bei Upgrades kann es zu Inkonsistenzen kommen. Ein manuelles CREATE INDEX kann Wunder wirken.
Und dann gibt es da noch die mysteriösen „Nicht genug Speicher“-Fehler trotz viel freiem RAM. Das liegt meist an den PHP-Prozessen, die jeweils einen Teil des Speichers belegen. Der Parameter memory_limit in der PHP-Konfiguration sollte 512 MB oder mehr betragen, aber der Gesamtspeicher aller Prozesse darf nicht das System-Limit überschreiten. Ein Monitoring der PHP-FPM-Status hilft, den Overcommit zu vermeiden.
Fazit: Keine Zauberei, aber viel Handwerk
Nextcloud-Performance optimieren ist kein Hexenwerk – aber es erfordert ein systematisches Vorgehen. Wer die Grundlagen versteht und bereit ist, Zeit in die Konfiguration zu investieren, wird mit einer stabilen, schnellen Cloud belohnt. Die typischen Hebel sind: Datenbank-Tuning, Caching mit Redis, schneller Speicher und eine saubere PHP-Konfiguration. Dazu kommt die Disziplin, nur notwendige Apps zu installieren und die Last im Auge zu behalten.
Es gibt keine universelle Lösung. Jede Installation hat andere Anforderungen. Ein kleiner Verein mit 20 Nutzern braucht andere Einstellungen als ein Unternehmen mit 500 Mitarbeitern. Aber die Prinzipien sind dieselben. Und wer sie beherzigt, wird feststellen: Nextcloud kann sehr schnell sein – viel schneller, als viele glauben. Man muss nur wissen, wo man drehen muss.
Und zu guter Letzt: Die Nextcloud-Community ist hilfreich. In Foren und auf GitHub finden sich unzählige Diskussionen zu Performance-Themen. Oft hat jemand anderes das gleiche Problem schon gelöst. Ein Blick lohnt sich. Denn am Ende zählt nicht die Theorie, sondern die Praxis. Und die ist manchmal holprig, aber immer lehrreich.