Accueil
» ADMINISTRATEUR RÉSEAU
»
Résoudre le problème de forte utilisation du processeur lors de la génération d'aperçus de Nextcloud : configurer le générateur d'aperçus
Résoudre le problème de forte utilisation du processeur lors de la génération d'aperçus de Nextcloud : configurer le générateur d'aperçus
En bref : installez l’application Preview Generator, activez-la, effectuez une première génération ciblée, puis planifiez-la occ preview:pre-generatependant les heures creuses. Limitez également la taille des aperçus et le nombre de nouveaux aperçus générés simultanément par Nextcloud. L’application décale le traitement du processeur dès l’ouverture d’un fichier ; elle n’impose pas de limite stricte à l’utilisation du processeur et peut augmenter l’espace disque utilisé.
Cette configuration convient à un serveur Nextcloud auto-hébergé où les vignettes entraînent des pics de charge CPU notables lors de la navigation, notamment sur un petit serveur disposant d'une bibliothèque de photos ou de documents importante. Elle est moins adaptée si votre instance utilise le chiffrement côté serveur : le projet Preview Generator signale le chiffrement comme une incompatibilité connue. L'hébergement géré, Nextcloud AIO, Docker et l'installation de paquets utilisent également des chemins d'accès différents pour les commandes ; adaptez donc les commandes à votre déploiement. Ne les exécutez pas depuis un répertoire deviné.
Les instructions actuelles de l'application recommandent de l'installer et de l'activer, de l'exécuter preview:generate-allune fois, puis de la programmer preview:pre-generatepour les modifications de fichiers ultérieures. La première commande peut s'avérer coûteuse pour une bibliothèque volumineuse. Commencez par un utilisateur ou un dossier et un processus. Consultez le fichier README du projet Preview Generator et les options de commande , puis sélectionnez une version compatible avec votre version de Nextcloud sur le Nextcloud App Store .
1. Confirmez qu'il s'agit de la bonne solution
Commencez par identifier le moment où l'utilisation du processeur augmente. Si cela se produit lorsque les utilisateurs ouvrent des dossiers contenant de nombreuses photos ou des documents nécessitant un aperçu, la pré-génération peut déléguer une grande partie de ce travail à une tâche planifiée. Si l'utilisation du processeur reste élevée même en l'absence d'activité de navigation, ou si les pics coïncident avec un autre service, Preview Generator risque de ne pas résoudre le problème. Consultez le moniteur de processus et les journaux de Nextcloud avant de modifier les paramètres.
Le générateur d'aperçus enregistre les fichiers ajoutés ou modifiés et les traite en arrière-plan. Les aperçus existants permettent de réduire le coût des requêtes ultérieures, mais les aperçus manquants peuvent être générés à la demande avant que la tâche planifiée ne les atteigne. Ainsi, l'application réduit les pics de latence pour l'utilisateur lorsque la file d'attente est pleine ; elle ne peut cependant pas garantir une utilisation nulle du processeur. Elle privilégie également l'espace de stockage au détriment d'une diffusion plus rapide des aperçus. Une petite bibliothèque peu consultée peut parfaitement convenir au fonctionnement à la demande de Nextcloud.
2. Installez la version compatible de l'application.
Une page d'administration cloud générique affiche une carte d'application avec aperçu d'image activée, illustrant l'étape d'installation et d'activation ; la mise en page n'est pas une capture d'écran spécifique à une version.
Connectez-vous en tant qu'administrateur Nextcloud, ouvrez la section Applications, recherchez Preview Generator , puis installez-le et activez-le. Avant de continuer, vérifiez que l'App Store propose une version stable compatible avec votre version majeure de Nextcloud. Évitez de copier manuellement le dossier de la dernière version de l'application par-dessus une version déclarée incompatible par l'App Store.
Les administrateurs disposant d'un accès shell peuvent vérifier ou activer l'application via [ occcommande manquante]. Un exemple de commande d'installation de package est présenté ci-dessous ; modifiez le chemin d'accès à l'exécutable PHP et à Nextcloud en fonction de votre système d'exploitation. Pour Docker ou AIO, utilisez la commande de conteneur ou les instructions du planificateur de déploiement compatibles.
3. Configurez les tâches en arrière-plan de Nextcloud sur Cron
Dans les paramètres d'administration de Nextcloud, sélectionnez Cron comme mode de tâche en arrière-plan et vérifiez que la tâche cron système de Nextcloud est bien en cours d'exécution. Le fichier README de l'application indique que sa tâche de prévisualisation intégrée nécessite le mode Cron ; les modes Webcron et AJAX ne sont pas compatibles avec cette tâche de longue durée. Si votre tâche cron habituelle est défaillante, l'installation de cette application seule ne permettra pas de rétablir le fonctionnement de la file d'attente.
Ne confondez pas la planification standard de Nextcloud (via cron.php) avec la preview:pre-generateplanification dédiée optionnelle de l'application. Il s'agit de deux mécanismes distincts. Vous pouvez utiliser la tâche en arrière-plan intégrée à l'application ou une commande cron système dédiée. Si vous optez pour la commande dédiée, il est recommandé de désactiver la tâche en arrière-plan de prévisualisation intégrée afin d'éviter l'exécution simultanée de deux processus pour une même file d'attente.
Une page de planification affiche une tâche récurrente active qui transmet la prévisualisation du travail à une fenêtre de commande et renvoie des résultats miniatures.
4. Réduisez la charge de travail de prévisualisation avant la première exécution en masse.
Un panneau de configuration générique associe des paramètres de type code à des commandes de taille d'image et de processeur, illustrant les deux limites que les administrateurs doivent ajuster.
Pour la création d'aperçus gourmands en ressources CPU, réduisez le nombre d'aperçus exécutés simultanément. Dans la documentation de configuration de Nextcloud 35, le paramètre ` preview_concurrency_newsuper_preview_generation` contrôle la génération simultanée de nouveaux aperçus ; la valeur par défaut est de quatre, et le manuel recommande de ne pas dépasser le nombre de cœurs du processeur. Sur un serveur peu puissant, testez une valeur comme deux, ou un si le serveur ne répond plus. Cela limite le travail simultané, mais une seule image ou vidéo volumineuse peut toujours consommer une quantité importante de ressources CPU.
Les dimensions de l'aperçu sont également importantes. Par défaut , Nextcloud 35 définit une largeur et une hauteur maximales de 4096 pixels. Les réduire preview_max_xpermet de diminuer la consommation de ressources et de mémoire, mais au prix d'aperçus plus petits. Sauvegardez le fichier de configuration et fusionnez les paramètres avec son tableau PHP existant ; ne remplacez pas le fichier par un extrait de code. Par exemple, un administrateur peut définir les deux valeurs à 2048 et tester la qualité dans les vues Fichiers et Photos.preview_max_yconfig/config.php
L'application peut générer plusieurs variantes de taille. Son fichier README propose un profil de taille réduite pour une utilisation courante avec les fichiers, les photos et l'activité : formats carrés 64 256, formats remplis en largeur et en hauteur 256 4096, et format vide, widthSizesainsi que heightSizesla possibilité d'ignorer ces groupes de variantes. Utilisez ces paramètres uniquement s'ils conviennent aux applications que vos utilisateurs utilisent régulièrement ; les chronologies Memories ou d'autres applications peuvent nécessiter des tailles supplémentaires. Le projet précise que les tailles d'aperçu doivent respecter ses règles de taille acceptées et ne peuvent pas dépasser les maximums configurés. Consultez les paramètres de taille et de qualité d'aperçu de Nextcloud ainsi que la documentation de configuration spécifique à cette version .
5. Générer les aperçus existants dans un premier lot restreint.
Une fois l'application activée et les limites définies, exécutez le générateur initial sur un dossier de test ou un utilisateur spécifique plutôt que sur l'ensemble de l'instance. L'application permet de filtrer par ID utilisateur ou chemin d'accès, et la commande accepte le nombre de processus. Pour une première exécution prudente, utilisez un seul processus.
La page des paramètres des tâches en arrière-plan affiche l'option de tâche planifiée sélectionnée ; les libellés exacts et les choix disponibles varient selon la version de Nextcloud.
Remplacez `<chemin> alice`, `<chemin_d'accès>` et `<chemin_d'installation_de_Nextcloud>` par les valeurs réelles de votre serveur. L'option `<chemin>` utilise le format `< /[username]/files/[folder path]chemin_d'accès>`. Si vous omettez le chemin et le filtre utilisateur, la commande risque de parcourir l'intégralité de la bibliothèque. Exécutez le script lorsque l'activité des utilisateurs est réduite, surveillez l'utilisation du processeur, de la mémoire et de l'espace disque, et interrompez l'exécution pour réévaluer la situation si le serveur devient instable. N'augmentez pas le nombre de processus pour accélérer l'exécution sans avoir mesuré au préalable l'impact sur le système.
6. Planifier les fichiers nouvellement ajoutés ou modifiés
Une fois que le lot de test fonctionne correctement, ajoutez-le preview:pre-generateà une planification cron système. Le fichier README de l'application indique un intervalle de dix minutes à titre d'exemple, mais ce n'est pas une obligation. Choisissez un intervalle adapté au volume de chargement et au temps d'inactivité disponible. Par exemple, un fichier crontab appartenant au compte du serveur web pourrait contenir la ligne suivante, en adaptant les chemins d'accès à votre installation :
Une fenêtre de type terminal affiche un dossier sélectionné suivi de vignettes d'images, représentant un premier passage d'un seul processus sur un chemin limité.
Si vous utilisez cette tâche cron système dédiée, désactivez la tâche d'aperçu en arrière-plan intégrée à l'application, comme recommandé par le projet. Le paramètre d'application documenté est le suivant :
Laissez la tâche cron.php standard de Nextcloud activée. Pour les conteneurs et les plateformes hébergées, utilisez le planificateur de tâches compatible avec la plateforme plutôt que d'indiquer un chemin d'hôte dans une entrée cron du conteneur. Si l'application est installée avec le chiffrement activé, veuillez vous arrêter ici et contacter votre administrateur ou votre fournisseur d'hébergement ; cette configuration n'est actuellement pas prise en charge.
7. Surveillez la file d'attente et confirmez l'amélioration.
Un panneau de surveillance générique combine un graphique du processeur avec des barres de progression de la file d'attente pour comparer la charge du serveur et prévisualiser le backlog.
Exécutez la commande occ preview:queue-statspour inspecter la file d'attente de pré-génération et les aperçus obsolètes. Une file d'attente qui diminue entre deux exécutions planifiées indique que le processus rattrape son retard. Si elle augmente constamment, cela signifie que les utilisateurs ajoutent des fichiers plus rapidement que la tâche configurée ne les traite ; augmentez la fréquence d'exécution ou les limites de tâches autorisées avec prudence, après avoir vérifié que la charge CPU supplémentaire est acceptable. L'application affiche les limites de temps d'exécution et de nombre d'aperçus par exécution. Son fichier README indique que zéro signifie illimité ; ne choisissez donc pas zéro à la légère sur un système aux ressources limitées.
Comparez les pics d'utilisation du processeur avant et après le déploiement, à des heures similaires. Ouvrez ensuite un dossier photo représentatif et un aperçu de document en tant qu'utilisateur normal. Vérifiez que les vignettes s'affichent, que les pages restent réactives et que l'utilisation du processeur se stabilise après le traitement par lots planifié. Un profil d'utilisation du processeur plus stable en journée, avec une progression adéquate de la file d'attente, est un résultat positif. En revanche, une file d'attente qui s'allonge constamment ou des sessions utilisateur plus lentes indiquent qu'il est nécessaire de revoir la planification, le profil de taille ou le fournisseur d'aperçu sous-jacent.
Une galerie de type Fichiers affiche des vignettes d'images, représentant la vérification visuelle que les aperçus demandés sont maintenant chargés.
limites importantes et nettoyage sécuritaire
Certains types d'aperçu dépendent de programmes côté serveur : le manuel de Nextcloud mentionne FFmpeg pour les aperçus vidéo et LibreOffice pour les aperçus de documents bureautiques. Ces formats peuvent se comporter différemment des vignettes d'images classiques, et leur prise en charge dépend de la configuration du fournisseur. Commencez par réduire le nombre de requêtes simultanées et testez un ensemble restreint de fichiers avant de changer de fournisseur ou d'ajouter des services.
Si vous modifiez les dimensions des aperçus ou les types de fichiers pris en charge et que vous devez supprimer les aperçus mis en cache, Nextcloud 31 et versions ultérieures offrent une occ preview:cleanupsolution à cet effet, comme indiqué dans le fichier README du projet. Ce dernier supprime tous les fichiers d'aperçu générés, puis Nextcloud crée des aperçus à la demande lorsque les utilisateurs accèdent aux fichiers. Cela peut temporairement entraîner les pics d'utilisation du processeur que vous cherchez justement à réduire. Il est donc conseillé d'effectuer des sauvegardes lorsque cela est nécessaire, de planifier le nettoyage de manière appropriée et d'éviter de supprimer manuellement le répertoire des aperçus de l'application lors des réglages courants. Le fichier README du générateur d'aperçus décrit également un .nomediafichier permettant d'ignorer un dossier et ses sous-dossiers lorsque cela est pertinent.
Un dossier et un symbole de fichier caché apparaissent à côté d'un bouclier et d'un cadenas, illustrant la limitation du chiffrement et la possibilité d'ignorer un dossier.
En pratique, Preview Generator est idéal lorsque les prévisualisations à la demande, bien que lentes, génèrent des pics de charge visibles, que vous pouvez planifier des tâches en arrière-plan et que vous disposez d'espace disque suffisant pour les tailles mises en cache. Il est recommandé de l'utiliser avec une limite de concurrence raisonnable, des dimensions de prévisualisation adaptées aux besoins d'affichage réels et un test préalable par lots. Si l'instance est chiffrée, gérée sans planification via le shell ou limitée par le processeur pour des raisons indépendantes des requêtes de prévisualisation, il convient d'examiner ces contraintes avant le déploiement.