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.

Page d'administration cloud générique avec une carte d'application de prévisualisation d'image et son interrupteur d'activation activé.
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.

sudo -u www-data php /var/www/nextcloud/occ app:enable previewgenerator

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.

Page de planification générique avec une tâche récurrente active menant à une fenêtre de commande et à des résultats miniatures.
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.

Panneau de configuration générique avec des paramètres de type code au-dessus des commandes de taille d'aperçu et d'utilisation du processeur.
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.

sudo -u www-data php /var/www/nextcloud/occ preview:generate-all --workers=1 --path="/alice/files/Photos"
Écran générique des paramètres de tâches en arrière-plan avec l'option de tâche planifiée sélectionnée.
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 :

*/10 * * * * cd /var/www/nextcloud && /usr/bin/php -f occ preview:pre-generate
Panneau de type terminal avec une icône de dossier suivie de vignettes d'images générées.
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 :

sudo -u www-data php /var/www/nextcloud/occ config:app:set --value=true --type=boolean previewgenerator job_disabled

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.

Écran de surveillance générique avec un graphique d'utilisation du processeur et deux barres de progression de file d'attente.
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.

Galerie de fichiers cloud affichant six vignettes d'images dans une vue de dossier.
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.

Symbole de dossier et de fichier caché à côté d'un bouclier avec un cadenas.
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.

Références officielles

Laisser un commentaire

Les 10 meilleurs outils de balayage ping pour trouver les appareils sur votre réseau

Les 10 meilleurs outils de balayage ping pour trouver les appareils sur votre réseau

Comparez 10 outils de balayage ping pour une découverte rapide du réseau local, une analyse multiplateforme et la gestion des adresses IP. Découvrez ce qu'un balayage peut – et ne peut pas – vous révéler.

6 outils de gestion de réseau performants pour le suivi des performances

6 outils de gestion de réseau performants pour le suivi des performances

Comparez six outils de gestion de réseau pour la surveillance des performances, notamment la couverture SNMP, la cartographie, les alertes, les modèles de déploiement et les compromis en matière de coûts.

Moniteur de ping : 7 outils gratuits et open source pour la disponibilité du réseau

Moniteur de ping : 7 outils gratuits et open source pour la disponibilité du réseau

Comparez sept moniteurs de ping gratuits et open source, allant des suites réseau complètes aux sondes de latence ciblées, et choisissez celui qui convient le mieux à vos besoins en matière de disponibilité, de perte de paquets et d'historique.

Meilleurs analyseurs Wi-Fi pour Windows, iOS et Android

Meilleurs analyseurs Wi-Fi pour Windows, iOS et Android

Comparez les meilleurs analyseurs Wi-Fi pour Windows, iPhone et Android, incluant des outils pour la congestion des canaux, la couverture du signal, les cartes thermiques et le dépannage réseau.

La qualité de service (QoS) dans les réseaux : définition et fonctionnement

La qualité de service (QoS) dans les réseaux : définition et fonctionnement

Découvrez ce que signifie la QoS dans le domaine des réseaux, comment les marquages ​​DSCP et les files d'attente de trafic priorisent la voix, la vidéo et les applications professionnelles, et ce que la QoS ne peut pas corriger.

Meilleur logiciel serveur SFTP pour les transferts de fichiers sécurisés

Meilleur logiciel serveur SFTP pour les transferts de fichiers sécurisés

Comparez les logiciels serveurs SFTP fiables pour Windows et Linux, notamment OpenSSH, Bitvise, SolarWinds et SFTPGo. Trouvez la solution idéale pour vos besoins en matière de sécurité et de transfert de fichiers.

Les 7 meilleurs outils de gestion d'adresses IP pour les équipes réseau

Les 7 meilleurs outils de gestion d'adresses IP pour les équipes réseau

Comparez sept outils de gestion d'adresses IP pour la découverte de sous-réseaux, la coordination DNS et DHCP, l'inventaire réseau et l'IPAM open source.

Bonnes pratiques de surveillance réseau : que surveiller et quels outils utiliser

Bonnes pratiques de surveillance réseau : que surveiller et quels outils utiliser

Mettez en place une surveillance réseau pratique avec une couverture claire des périphériques, des indicateurs de performance utiles, des alertes exploitables et une comparaison de SolarWinds NPM, PRTG et OpManager.

Les 10 meilleurs outils d'analyse réseau pour la découverte des périphériques et des adresses IP

Les 10 meilleurs outils d'analyse réseau pour la découverte des périphériques et des adresses IP

Comparez les outils d'analyse réseau pour la découverte rapide des périphériques, les analyses IP multiplateformes et la gestion des identités et des accès IP (IPAM) d'entreprise, avec des conseils pour adapter chaque option à votre réseau.

Comment utiliser Nmap pour traceroute et lire le chemin réseau

Comment utiliser Nmap pour traceroute et lire le chemin réseau

Utilisez l'option --traceroute de Nmap pour associer les sauts à un hôte autorisé, comprendre les résultats des sauts et du RTT, et résoudre les problèmes de réponses manquantes sans sur-analyse.