Solution communautaire

searchd de ZimaOS à 100 % du processeur après un transfert de fichier volumineux : le correctif 1.3.2 et le fonctionnement actuel de la planification de l’indexation par Search

A January-February 2025 ZimaOS thread where searchd stayed at 100% CPU for hours or days after a large file transfer. IceWhale first explained that Files search required indexing, then identified an occasional pagination-logic corner case, fixed it in 1.3.2-beta2, added idle service folding, moved content indexing to midnight at low resource use, and documented how to disable search.

Le comportement initial de forte utilisation du processeur n’était pas simplement dû au fait que « l’indexation normale peut durer indéfiniment ». Après un transfert important, searchd restait à 100 % du processeur pendant des heures — et certains utilisateurs ont signalé plusieurs jours — ce qui faisait monter la température du système et les obligeait à choisir entre arrêter la recherche ou laisser le processeur fonctionner à plein régime.

IceWhale a ensuite fourni une explication précise : un cas particulier occasionnel dans la logique de pagination pouvait provoquer le problème de processeur sollicité pendant une longue durée. Il a été corrigé et optimisé dans ZimaOS 1.3.2-beta2. La même mise à jour a ajouté la mise en veille du moteur de recherche après une période d’inactivité, maintenu l’indexation des noms de fichiers précise et en temps réel, et déplacé l’indexation du contenu des fichiers à minuit avec une utilisation réduite des ressources. La documentation actuelle de la recherche de ZimaOS a depuis évolué, avec une limitation explicite et des valeurs bien plus faibles pour la mémoire et le nombre de services en veille.

Le moniteur système de ZimaOS montrant searchd utilisant 100 % du processeur après un transfert important de fichiers
Le moniteur système indique searchd monopolisait le processeur après la fin du transfert.

La recherche nécessite un index

Zima-Giorgio a d’abord expliqué que la fonction de recherche de Fichiers devait indexer les fichiers. Cette partie était correcte, mais elle n’expliquait pas pourquoi le processeur restait sollicité au maximum pendant une durée inhabituellement longue.

IceWhale a ensuite identifié un cas particulier dans la logique de pagination

Le 11 février 2025, orca-zhang a déclaré que le problème de processeur élevé de longue durée pouvait parfois être causé par une erreur dans la logique de pagination et que le problème avait été corrigé et optimisé dans la version 1.3.2-beta2.

Il s’agit de la conclusion la plus solide de la source et elle devrait remplacer l’explication vague précédente : « l’indexation est en cours ».

La version 1.3.2 a ajouté la mise en veille du service de recherche après inactivité

IceWhale a indiqué que lorsque la recherche n’était pas nécessaire, searchd serait libéré après environ trois minutes d’inactivité, ne laissant que le composant léger zimaos-search service sous les 100 Mo de mémoire et autour de 0 à 1 % du processeur.

L’indexation du contenu a été déplacée à minuit

La même réponse distinguait deux tâches :

  • index des noms de fichiers — maintenu aussi précis et en temps réel que possible ;
  • index du contenu des fichiers — différé jusqu’à minuit et exécuté avec une faible utilisation des ressources.

Cette distinction existe toujours dans l’architecture actuelle de la recherche.

La documentation actuelle d’IceWhale décrit :

  • surveillance en temps réel des modifications de fichiers et indexation des noms de fichiers ;
  • indexation du contenu à minuit ;
  • maximum de 100 000 documents par type/session de traitement ;
  • durée maximale de traitement de cinq minutes par type ;
  • une protection par barrière d’écriture contre les pics d’utilisation du processeur ;
  • la réduction de l’utilisation du service et de la mémoire après une période d’inactivité.

Utilisez l’architecture actuelle de la recherche ZimaOS.

La recherche pouvait être désactivée à partir de ZimaOS 1.3.2

orca-zhang a indiqué que la persistance ajoutée à /etc dans la version 1.3.2 permettait aux utilisateurs qui n’avaient pas besoin de la recherche d’exécuter :

systemctl disable zimaos-search

L’arrêt ou la désactivation de la recherche signifie que la recherche de fichiers signalera que le service est indisponible. Les utilisateurs actuels doivent d’abord vérifier le fonctionnement actuel de la recherche avant de désactiver un service essentiel uniquement en raison d’un bug historique.

La capture d’écran « 100 % pleine » de /dev/root concernait un autre problème

Un autre participant a remarqué /dev/root affichait une utilisation de 100 % et a tenté de l’agrandir. IceWhale a expliqué que cette représentation de la racine SquashFS en lecture seule est intentionnelle pour garantir l’intégrité du système et qu’elle ne doit pas être considérée comme une partition racine inscriptible classique nécessitant de l’espace libre.

Ne redimensionnez pas et ne supprimez pas les partitions système de ZimaOS parce que l’image SquashFS indique qu’elle est pleine.

Tableau de bord de ZimaOS pendant la période d’utilisation élevée du processeur par searchd, affichant la charge du processeur, le stockage système et les applications installées
L’utilisation élevée du processeur par la recherche était visible au niveau du système, même si la structure sous-jacente de la racine système en lecture seule fonctionnait comme prévu.

Si la recherche utilise beaucoup de processeur sur la version actuelle de ZimaOS

  1. confirmer que le système utilise la version stable actuelle de ZimaOS ;
  2. vérifier si une importation volumineuse de fichiers vient d’avoir lieu ;
  3. laisser la fenêtre d’indexation documentée se terminer ;
  4. surveiller si l’utilisation du processeur diminue après la période d’inactivité du service ;
  5. collecter les informations actuelles zimaos-search les journaux si l’utilisation du processeur reste élevée bien au-delà de la période prévue.

FAQ sur l’utilisation élevée du processeur par searchd

Le fait que le processeur soit utilisé à 100 % pendant plusieurs jours était-il considéré comme normal ?

Non. IceWhale a ensuite identifié un cas particulier dans la logique de pagination et l’a corrigé dans la version 1.3.2-beta2.

Quand la version actuelle de ZimaOS effectue-t-elle l’indexation du contenu ?

La documentation actuelle indique que l’indexation du contenu est effectuée pendant les heures creuses, à minuit, tandis que les changements de noms de fichiers sont indexés en temps réel.

La présence de /dev/root à 100 % signifie-t-elle que le disque système n’a plus d’espace libre ?

Ce n’est pas le cas dans la source. IceWhale a expliqué que la représentation SquashFS de la racine système est intentionnellement en lecture seule et qu’il est normal qu’elle apparaisse pleine.