- Warum du deinen Nextcloud Server optimieren solltest
- PHP Upload Limit erhöhen und Timeouts anpassen
- Nextcloud Performance Tweaks mit APCu und Opcache
- Cronjob aktivieren und Hintergrundjobs richtig konfigurieren
- Nextcloud config.php optimieren
- Wichtige occ Befehle für Wartung und Performance
- Datenbank, Storage und Netzwerk nicht vergessen
Warum du deinen Nextcloud Server optimieren solltest
Nextcloud ist mehr als nur ein Netzlaufwerk in hübsch. Wenn du deinen Nextcloud Server als zentrale Datendrehscheibe nutzt, merkst du schnell, wie wichtig Performance und Stabilität sind. Große Uploads brechen ab, Downloads laufen ins Timeout, die Weboberfläche fühlt sich zäh an und die Vorschau von Bildern oder Videos lässt auf sich warten.
In diesem Beitrag zeige ich dir, wie du deinen Nextcloud Server optimierst, die Performance verbesserst und typische Limits wie das PHP Upload Limit und Timeouts anpasst. Außerdem schauen wir uns an, wie du Cronjobs aktivierst, die Nextcloud config.php anpasst und welche Befehle bei Wartung und Tuning wirklich wichtig sind.
Ich gehe dabei vor allem von einem Setup mit Ubuntu, Apache und PHP 8.3 oder 8.4 aus. Viele Tipps gelten aber genauso für PHP-FPM oder Nginx.
PHP Upload Limit erhöhen und Timeouts anpassen
Damit große Dateien in Nextcloud sauber hochgeladen werden können, müssen mehrere PHP Parameter zusammenpassen. Die Einstellungen findest du in der Regel unter zum Beispiel:
sudo nano /etc/php/8.4/apache2/php.ini
Wichtige Parameter für Uploads und Timeouts:
| Einstellung | Beispielwert | Wirkung |
|---|---|---|
memory_limit | 1024M oder 2G | Maximaler RAM pro PHP Prozess |
upload_max_filesize | 8G | Maximalgröße einer einzelnen Datei |
post_max_size | 8G oder größer | Maximalgröße des gesamten POST Requests |
max_file_uploads | 200 | Wie viele Dateien pro Request hochgeladen werden dürfen |
default_socket_timeout | 900 | Timeout in Sekunden für Streams, z. B. bei langsamen Uploads |
Wichtig:
post_max_sizesollte mindestens so groß sein wieupload_max_filesize, besser etwas größer.- Übertreibe es nicht mit absurden Werten wie 256G, wenn dein Server nur 16 GB RAM und 2 TB Speicher hat. Passe die Werte an dein Setup an.
- Für sehr große Dateien ist oft das Timeout das eigentliche Problem. Erhöhe daher zusätzlich:
max_execution_timeauf zum Beispiel3600max_input_timeauf zum Beispiel3600
Beispielauszug aus einer php.ini:
memory_limit = 2G
upload_max_filesize = 8G
post_max_size = 8G
max_file_uploads = 200
max_execution_time = 3600
max_input_time = 3600
default_socket_timeout = 900
zlib.output_compression = On
zlib.output_compression_level = 6
Die zlib.output_compression Einstellung kann helfen, die Antwortgröße zu reduzieren, vor allem bei langsameren Leitungen. Achte aber darauf, dass dein Reverse Proxy oder Webserver nicht zusätzlich doppelt komprimiert.
Zusätzlich musst du bei Nginx oder einem Reverse Proxy oft noch Limits anpassen, zum Beispiel:
- Nginx:
client_max_body_size - Apache:
LimitRequestBodyoder Timeouts wieProxyTimeoutoderRequestReadTimeout
Nextcloud Performance Tweaks mit APCu und Opcache
Nextcloud profitiert massiv von einem korrekt eingerichteten PHP Opcache und einem lokalen Cache wie APCu.
In deiner php.ini oder einer eigenen apcu.ini kannst du APCu zum Beispiel so aktivieren:
apc.enabled=1
apc.shm_segments=1
apc.shm_size=256M
apc.entries_hint=8192
Deine Werte aus den Notizen (z. B. apc.shm_size=768M) sind für sehr große Installationen mit vielen Nutzern ok. Für eine kleine private Nextcloud reichen meist 128M bis 256M.
Der PHP Opcache sorgt dafür, dass PHP Dateien im Speicher gehalten werden und nicht bei jedem Request neu geparst werden müssen:
opcache.enable=1
opcache.enable_cli=0
opcache.memory_consumption=256
opcache.interned_strings_buffer=32
opcache.max_accelerated_files=20000
opcache.max_wasted_percentage=10
Kurz erklärt:
opcache.memory_consumptionlegt fest, wie viel RAM der Opcache nutzen darf. 128 bis 256 MB sind für die meisten Installationen ein guter Start.opcache.max_accelerated_filesgibt an, wie viele PHP Dateien gecacht werden dürfen. 10000 bis 20000 sind für typische Nextcloud Umgebungen sinnvoll.
Nach Änderungen an den PHP Einstellungen musst du Apache oder PHP-FPM neu starten:
sudo systemctl restart apache2
# oder
sudo systemctl restart php8.4-fpm
Cronjob aktivieren und Hintergrundjobs richtig konfigurieren
Nextcloud erledigt viele Aufgaben im Hintergrund: Vorschauen generieren, Freigaben aufräumen, Shares synchronisieren, externe Speicher prüfen und vieles mehr. Standardmäßig läuft das über AJAX. Das ist bequem, aber schlecht für die Performance, weil Aufgaben dann nur ausgelöst werden, wenn jemand im Browser aktiv ist.
Besser ist ein System Cronjob. Stelle in den Nextcloud Admin Einstellungen unter „Grundlegende Einstellungen“ den Punkt „Hintergrundaufgaben“ auf „Cron“.
Dann legst du als www-data Benutzer einen Cronjob an:
sudo -u www-data crontab -e
Zum Beispiel:
*/5 * * * * php --define apc.enable_cli=1 -f /var/www/html/cron.php > /dev/null 2>&1
Damit läuft der Nextcloud Cron alle 5 Minuten, unabhängig davon, ob jemand im Browser eingeloggt ist.
In deinen Notizen hast du zusätzlich ein paar sinnvolle Wartungsjobs mit occ files:scan eingetragen, um bestimmte Benutzerverzeichnisse oder externe Speicher zu scannen. Das ist völlig ok, aber übertreibe es nicht mit zu vielen täglichen Scans, sonst belastest du deine Datenbank unnötig.
Nextcloud config.php optimieren
Die Datei config/config.php steuert viele interne Funktionen von Nextcloud. Du findest sie zum Beispiel unter:
nano /var/www/html/config/config.php
Ein paar deiner Einträge und was sie bedeuten:
'memcache.local' => '\\OC\\Memcache\\APCu',
'preview_max_memory' => 4096,
'versions_retention_obligation' => '5,auto',
'trashbin_retention_obligation' => '5,auto',
'filelocking.enabled' => false,
'check_data_directory_permissions' => false,
'files.chunked_upload.max_size' => 20971520,
'enabledPreviewProviders' => array(
'OC\\Preview\\PNG',
'OC\\Preview\\JPEG',
'OC\\Preview\\GIF',
'OC\\Preview\\HEIC',
'OC\\Preview\\BMP',
'OC\\Preview\\XBitmap',
'OC\\Preview\\MP3',
'OC\\Preview\\TXT',
'OC\\Preview\\MarkDown',
'OC\\Preview\\OpenDocument',
'OC\\Preview\\Krita',
'OC\\Preview\\PDF',
'OC\\Preview\\SVG',
'OC\\Preview\\EPS',
'OC\\Preview\\DOC',
'OC\\Preview\\DOCX',
'OC\\Preview\\TIFF',
'OC\\Preview\\Photoshop',
'OC\\Preview\\PhotoshopPSB',
'OC\\Preview\\MP4',
),
Kurz zusammengefasst:
memcache.localmit APCu ist Pflicht für Performance. Ohne das fühlt sich Nextcloud sehr langsam an.preview_max_memorybegrenzt den RAM für das Generieren von Bildvorschauen. Standard ist deutlich kleiner, 4096 MB ist eher großzügig. Passe den Wert an deine Hardware an.versions_retention_obligationundtrashbin_retention_obligationsteuern, wie lange Versionen und Papierkorb-Inhalte aufbewahrt werden. Kürzere Aufbewahrung bedeutet weniger Speicherverbrauch.files.chunked_upload.max_sizebeeinflusst die Chunkgröße beim Upload. Der Wert ist in Bytes. 20971520 entspricht 20 MB. Größere Chunks können die Performance bei schnellen Leitungen verbessern, sind aber empfindlicher bei instabilen Verbindungen.
Vorsicht bei:
'filelocking.enabled' => false,
'check_data_directory_permissions' => false,
filelocking.enabledsolltest du nur deaktivieren, wenn du genau weißt, was du tust. Besser ist es, Redis alsmemcache.lockingzu konfigurieren, damit gleichzeitige Zugriffe sauber gesperrt werden.check_data_directory_permissionsauffalsekann sinnvoll sein, wenn du ein spezielles Storage Setup hast, nimmt dir aber auch eine Sicherheitsprüfung ab.
Wichtige occ Befehle für Wartung und Performance
Das Nextcloud CLI Werkzeug occ ist extrem hilfreich für Wartung und Optimierung. Du führst Befehle zum Beispiel so aus:
sudo -u www-data php /var/www/html/occ status
Einige nützliche Befehle:
occ status
Zeigt dir grundlegende Informationen zu deiner Instanz.occ db:add-missing-indices
Fügt fehlende Datenbank Indizes hinzu und kann Abfragen deutlich beschleunigen.occ db:convert-filecache-bigint
Konvertiert Spalten in der Datenbank, um Performance und Stabilität zu verbessern.occ files:scan --alloder gezielt mit--path
Hilft, wenn Dateien im Dateisystem liegen, aber in Nextcloud nicht sichtbar sind. Nicht zu häufig laufen lassen, da es die Datenbank belasten kann.occ preview:pre-generate
In Kombination mit der Preview Generator App kannst du Bildvorschauen nachts vorrechnen lassen, damit der Webzugriff schneller wird.
Datenbank, Storage und Netzwerk nicht vergessen
Wenn du deinen Nextcloud Server wirklich optimieren willst, solltest du auch diese Bereiche im Blick behalten:
- Datenbank Tuning
- Verwende nach Möglichkeit MariaDB oder PostgreSQL.
- Stelle sicher, dass der Buffer Pool groß genug ist, zum Beispiel:
- MariaDB:
innodb_buffer_pool_sizebei kleinen Servern auf 1 bis 2 GB setzen.
- MariaDB:
- Achte auf regelmäßige Backups und prüfe die Logs auf langsame Abfragen.
- Storage und Dateisystem
- SSD oder NVMe bringen einen deutlichen Performance Schub gegenüber alten HDDs.
- Bei vielen kleinen Dateien lohnt sich ein Blick auf das Dateisystem und Mount-Optionen.
- Externe Speicher (SMB, NFS) sind praktisch, aber oft langsamer als lokaler Storage.
- Netzwerk und Reverse Proxy
- Stelle sicher, dass deine Internetleitung zum Upload passt, vor allem bei großen Dateien.
- Prüfe Timeouts und Body Limits im Reverse Proxy (Nginx, Traefik, Apache Proxy).
- Aktiviere HTTP/2 oder HTTP/3, wenn dein Setup das unterstützt, um viele kleine Anfragen effizienter abzuarbeiten.

