- Pourquoi vous devriez optimiser votre serveur Nextcloud
- Augmenter la limite d’envoi PHP et ajuster les délais d’attente
- Optimiser les performances de Nextcloud avec APCu et Opcache
- Activer Cron et configurer les tâches en arrière-plan
- Optimiser le fichier config.php de Nextcloud
- Commandes occ importantes pour la maintenance et les performances
- Ne pas oublier la base de données, le stockage et le réseau
Pourquoi vous devriez optimiser votre serveur Nextcloud
Nextcloud est plus qu’un joli lecteur réseau. Si vous utilisez votre serveur Nextcloud comme centre central pour vos fichiers et vos workflows, vous remarquez rapidement l’importance des performances et de la stabilité. Les envois volumineux échouent, les téléchargements expirent, l’interface web paraît lente et les aperçus de photos ou de vidéos mettent beaucoup de temps à charger.
Dans cet article, je vais vous montrer comment optimiser votre serveur Nextcloud, améliorer les performances et ajuster les limites typiques comme la limite d’envoi PHP et les timeouts. Nous examinons également comment activer cronjobs, comment personnaliser Nextcloud config.php, et quelles commandes sont vraiment importantes en matière de maintenance et d’optimisation.
Les exemples sont basés sur une configuration avec Ubuntu, Apache et PHP 8.3 ou 8.4. Beaucoup de conseils s’appliquent également si vous utilisez PHP-FPM ou Nginx au lieu d’Apache.
Augmenter la limite d’envoi PHP et ajuster les délais d’attente
Pour télécharger de grands fichiers de manière fiable dans Nextcloud, plusieurs paramètres PHP doivent fonctionner ensemble. Sur Ubuntu avec Apache et PHP 8.4, vous modifiez habituellement :
sudo nano /etc/php/8.4/apache2/php.ini
Paramètres importants pour les téléchargements et les timeouts :
| Réglage | Exemple de valeur | Effet |
|---|---|---|
memory_limit | 1024M ou 2G | RAM maximum par processus PHP |
upload_max_filesize | 8G | Taille maximale d’un fichier envoyé |
post_max_size | 8G ou plus | Taille maximale de l’ensemble de la demande POST |
max_file_uploads | 200 | Combien de fichiers peuvent être téléchargés par demande |
default_socket_timeout | 900 | Délai d’attente en secondes pour les flux, par exemple les téléchargements lents |
Quelques règles générales :
post_max_sizedoit être au moins aussi grande queupload_max_filesize, et idéalement légèrement supérieur.- N’exagérez pas avec des valeurs absurdes comme 256G si votre serveur n’a que 16 Go de RAM et 2 To de stockage. Ajustez les valeurs à votre configuration.
- Pour les très grands fichiers, le délai est souvent le vrai problème. Augmentez également ces valeurs :
max_execution_timepar exemple3600max_input_timepar exemple3600
Exemple extrait d’un php.ini fichier & #160;:
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
Les zlib.output_compression réglage peut aider à réduire la taille de la réponse, en particulier sur les connexions plus lentes. Assurez-vous simplement que votre proxy inversé ou serveur web ne compresse pas la même réponse une seconde fois.
Si vous utilisez Nginx ou un proxy inversé devant Apache, vous devez également ajuster les limites de téléchargement et de timeout, par exemple :
- Nginx:
client_max_body_size - Apache :
LimitRequestBodyet des délais tels queProxyTimeoutouRequestReadTimeout
Optimiser les performances de Nextcloud avec APCu et Opcache
Nextcloud améliore beaucoup les performances si vous configurez PHP Opcache et un cache local comme APCu.
Dans votre php.ini ou d’un apcu.ini vous pouvez activer APCu comme ceci:
apc.enabled=1
apc.shm_segments=1
apc.shm_size=256M
apc.entries_hint=8192
Valeurs comme apc.shm_size=768M de vos notes sont bonnes pour les grandes installations avec de nombreux utilisateurs. Pour un petit serveur Nextcloud privé, 128M à 256M suffisent généralement.
PHP Opcache stocke des scripts PHP compilés en mémoire afin qu’ils n’aient pas besoin d’être analysés à plusieurs reprises :
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
En termes simples:
opcache.memory_consumptiondéfinit la quantité que RAM Opcache peut utiliser. 128 à 256 MB est un bon point de départ pour de nombreux serveurs Nextcloud.opcache.max_accelerated_filescontrôle combien de fichiers PHP peuvent être mis en cache. Les valeurs entre 10000 et 20000 fonctionnent bien pour les configurations typiques de Nextcloud.
Après avoir modifié les paramètres PHP, vous devez redémarrer Apache ou PHP-FPM :
sudo systemctl restart apache2
# oder
sudo systemctl restart php8.4-fpm
Activer Cron et configurer les tâches en arrière-plan
Nextcloud exécute de nombreuses tâches en arrière-plan : générer des prévisualisations, nettoyer les anciennes actions, synchroniser le stockage externe, mettre à jour le cache de fichiers et bien plus encore. Par défaut, cela fonctionne via AJAX qui est facile à configurer mais mauvais pour les performances, parce que les travaux ne démarrent que lorsque quelqu’un est actif dans le navigateur.
Il est préférable de passer à un système Cronjob. Ouvrez les paramètres d’administration Nextcloud, allez dans « Paramètres de base » et changez « Tâches en arrière-plan » en « Cron ».
Puis créer un Cronjob comme le www-data utilisateur & #160;:
sudo -u www-data crontab -e
Par exemple:
*/5 * * * * php --define apc.enable_cli=1 -f /var/www/html/cron.php > /dev/null 2>&1
Maintenant, le Nextcloud Cron fonctionne toutes les 5 minutes, indépendamment de l’activité de l’utilisateur dans l’interface web.
Dans vos notes, vous utilisez également des travaux d’entretien supplémentaires avec occ files:scan pour réanalyser des dossiers utilisateurs spécifiques ou un stockage externe. C’est tout à fait bien, mais essayez de ne pas faire des scans complets trop souvent. Une analyse ciblée chaque nuit pour les chemins critiques est généralement suffisante, sinon vous allez mettre une charge inutile sur votre base de données.
Optimiser le fichier config.php de Nextcloud
Le fichier config/config.php contrôle de nombreuses fonctions internes Nextcloud. Sur une installation standard, vous l’éditez comme ceci:
nano /var/www/html/config/config.php
Voici quelques paramètres et leur fonction :
'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',
),
Résumé succinct :
memcache.localavec APCu est essentiel pour la performance. Sans lui, Nextcloud semblera très lent.preview_max_memorylimite la RAM utilisée pour générer des aperçus. La valeur par défaut est bien plus faible, 4096 Mo est assez généreux. Réglez la valeur pour correspondre à votre matériel.versions_retention_obligationettrashbin_retention_obligationcontrôler la durée de conservation des versions et du contenu des poubelles. Une rétention plus courte permet d’économiser de l’espace disque mais réduit les options de restauration.files.chunked_upload.max_sizeIl affecte la taille du morceau lors du téléchargement. La valeur est en octets. 20971520 équivaut à 20 Mo. Les gros morceaux peuvent améliorer les performances sur les lignes rapides, mais sont plus sensibles aux connexions instables.
Soyez prudent avec:
'filelocking.enabled' => false,
'check_data_directory_permissions' => false,
- Vous devriez seulement désactiver
filelocking.enabledsi vous savez vraiment ce que vous faites. Une meilleure approche est de configurer Redis commememcache.lockingafin que l’accès simultané aux fichiers soit géré en toute sécurité. check_data_directory_permissionsfixé àfalsepeut avoir un sens dans les configurations spéciales, mais vous perdez également un contrôle de sécurité qui vous avertit au sujet des mauvaises autorisations.
Commandes occ importantes pour la maintenance et les performances
L’outil CLI Nextcloud occ est extrêmement utile pour les tâches de maintenance et de réglage. Vous exécutez habituellement des commandes comme ceci:
sudo -u www-data php /var/www/html/occ status
Quelques commandes utiles :
occ status
Affiche les informations de base sur votre instance Nextcloud.occ db:add-missing-indices
Ajoute des index de base de données manquants et peut accélérer de nombreuses requêtes.occ db:convert-filecache-bigint
Convertit les colonnes de la base de données vers des types plus adaptés afin d’améliorer les performances et stabilité.occ files:scan --allou avec--path
Réanalyse le système de fichiers et met à jour le cache de fichiers. Très utile si les fichiers apparaissent sur le disque mais pas dans Nextcloud. Ne pas exécuter des scans complets toutes les heures, cela sollicite fortement la base de données.occ preview:pre-generate
Avec l’application Preview Generator, vous pouvez pré-générer les prévisualisations la nuit afin que les utilisateurs voient les images et les PDF beaucoup plus rapidement dans l’interface web.
Ne pas oublier la base de données, le stockage et le réseau
Si vous voulez vraiment optimiser votre serveur Nextcloud, vous devriez également regarder au-delà des fichiers PHP et de configuration.
- Optimisation de la base de données
- Si possible, utilisez MariaDB ou PostgreSQL.
- Assurez-vous que le pool de mémoire tampon est suffisamment grand, par exemple:
- C’est ça.
innodb_buffer_pool_sizepour les petits serveurs de 1 à 2 Go.
- C’est ça.
- Surveillez les sauvegardes régulières et vérifiez les journaux pour les requêtes lentes.
- Système de stockage et de fichiers
- SSD ou NVMe apportent une augmentation significative des performances par rapport aux anciens DDH.
- Pour de nombreux petits fichiers, il vaut la peine de regarder le système de fichiers et les options de montage.
- Le stockage externe (SMB, NFS) est pratique mais souvent plus lent que le stockage local.
- Réseau et proxy inverse
- Assurez-vous que votre ligne Internet dispose d’un débit montant suffisant, en particulier pour les grands fichiers.
- Vérifiez les délais et les limites de corps dans le proxy inverse (Nginx, Traefik, Apache Proxy).
- Activer HTTP/2 ou HTTP/3 si votre configuration le supporte pour traiter de nombreuses petites requêtes plus efficacement.
Cet article a été traduit à l’aide de l’IA.


