Nautilus devenu lent et gourmand en RAM

Tags: #<Tag:0x00007f509f95b400>

Bonjour,

Depuis quelques temps (peut être en lien avec mon passage à Debian 11) Nautilus est devenu lent, très lent, pour toutes sortes d’action, même des choses « simples » : changer de fichier sélectionné, ouvrir le menu contextuel, etc.

C’est moins vrai quand je viens d’ouvrir Nautilus, soit au démarrage de la session, soit après avoir fermé toutes les fenêtres, mais ça revient relativement vite.

Cela s’accompagne d’une forte consommation de la mémoire, il n’est pas rare qu’il s’accapare plus de 2 Go.

Par curiosité, quel HW utilisez vous?
Car il faut bien savoir que systemd est un mamouth et ca ne s’arrange pas au fil des releases et le corrolaire et que toutes les couches User vont de meme.

Je vous conseille une distro comme antix

AMD Ryzen 3 1300X, 8 Go de RAM DDR4

C’est pas supposé être une machine de guerre, mais enfin pour exécuter Nautilus, y’a pas besoin de plus.

C’est vraiment un problème circonscrit à ce logiciel. Je n’ai aucun problème pour naviguer dans les fichiers depuis, par exemple, une boite de dialogue d’un logiciel.

Avec un simple htop tu as la confirmation que c’est bien Files/Nautilus qui consomme ta mémoire et charge le système ?
C’est peut-être tracker qui te bouffe ton CPU …

1 J'aime

En tapant « nautilus is hogging my ram » je suis tombé sur ca
https://forums.linuxmint.com/viewtopic.php?t=7125

qui link vers:

C’est un pb récurrent de ce que je vois 2007/2011 onward

Donc checker les logs (volumes) avec ncdu et comme dit par ailleurs regarder top

top me donne la même information, nautilus utilise bien une quantité conséquente de RAM.

Aucun soucis niveau CPU, il reste dans des niveaux normaux.

Je n’ai pas de fichier ~/nautilus-debug-log.txt, mais je ne pense pas que ce soit le même problème (qui semble réglé depuis), nautilus devient juste lent lorsque je l’utilise, sans pour autant solliciter fortement le CPU.

Donc ton Nautilus est lent mais ne consomme pas de CPU ? seulement de la mémoire ? peut-être des I/O alors ?
As-tu ajouté des drives réseaux, des liens WebDAV, des liens vers online-accounts, etc… dans Nautilus ?
As-tu vérifié l’état de tes HDs (test de performance dans l’utilitaire Disks).

D’après le moniteur systèmes le total lecture disque et le total écriture n’ont rien d’inhabituels. Au moment où j’écris ce message c’est 93 Mio total lecture, 9,1 Mio total écriture, mais 1,9 Gio de mémoire.

Je ne crois pas avoir fait quoi que ce soit d’exceptionnel en terme de configuration, du réseau local, mais rien d’incroyable.

Nautilus est lent y compris pour des choses anodines, genre sélection d’un fichier, ou un clic droit pour faire apparaître un menu contextuel.

Je ne pense pas que les disques soient en cause (un SSD au cas où), parce que, ça n’explique pas l’explosion de la RAM, que le comportement de Nautilus est normal au démarrage ou si je le ferme et le rouvre ensuite, et parce que naviguer dans les dossiers est rapide par ailleurs, même quand c’est lent sous Nautilus.

peut etre le hdd va très lent un linux :smiley: achète toi un ssd :smiley:

J’ai déjà un SSD (M.2)

Les temps d’accès au disque ne sont pas le problème :

  • les temps de copie, de lecture et d’écriture des fichiers sont inchangés
  • ça n’explique pas la lenteur sur les actions que je décris (sélection d’un fichier, menu contextuel)
  • ça n’expliquerais pas pourquoi la consommation de mémoire vive explose
  • c’est un problème relativement récent
  • le problème se résorbe si je relance Nautilus

Et le problème revient ensuite , c’est ça ?

Tu as bien sûr désactivé toutes tes extensions Gnome ?

Concernant la conso mémoire, concrètement, ça donne quoi avec le moniteur système ?

nautilus

Exactement.

Rien d’activé dans « extensions »

Un petit avant / après :
screenshot-avant

screenshot-apres

Ouais, tu as clairement un temps CPU énorme (en plus de la mémoire). Je ne sais pas ce qu’il fait, mais il est occupé, à moins que tu passes ton temps dessus.

Peut-être qu’un monitoring avec strace te donnera des infos… (lancer de puis un terminal « strace nautilus » mais je ne connais pas bien cette partie, peut-être quelqu’un peut te donner des conseils sur l’usage de strace…

Allez vérification (lorsque ça rame dur) de tracker qui est assorti à Nautilus/files avec un : tracker3 status

Et pour s’assurer que c’est bien lui le coupable (ou non) une astuce pour le tuer (toujours à faire lorsque ça rame dur ^^ ) : tracker3 daemon -t

Si c’est lui qui te bouffe ton temps cpu il te restera à revoir la structure à indexer, surtout si tu as une arborescence de dingue avec des dossiers contenant des centaines de milliers de petits fichiers … en générale tracker ne doit pas être virer mais simplement canaliser pour travailler sur les répertoires courants d’un desktop à utilisation normale.

pour vérifier les erreurs du dit tracker dans les logs :

journalctl --user --unit=tracker-miner-fs-3.service --unit=tracker-extract-3.service --priority=7

Pour le strace de nautilus/files commence par un strace -c à l’état normale puis chargé et compare déjà ça.

Chez moi :

 root  ~  strace -c nautilus

** (org.gnome.Nautilus:3320172): WARNING **: 11:54:43.796: Error on getting connection: Failed to load SPARQL backend: Cannot autolaunch D-Bus without X11 $DISPLAY
Unable to init server: Impossible de se connecter : Connexion refusée

(org.gnome.Nautilus:3320172): Gtk-WARNING **: 11:54:43.881: cannot open display: 
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 44,23    0,012839          26       487           mmap
 16,69    0,004844          21       226        80 openat
  9,47    0,002750          22       123           read
  9,28    0,002695          18       149           mprotect
  6,49    0,001883          10       174           fstat
  6,01    0,001744          12       145           close
  3,41    0,000990           1       616           pread64
  1,31    0,000380           5        70        30 stat
  1,04    0,000303           1       215         2 futex
  0,30    0,000088          44         2         2 statfs
  0,27    0,000079          15         5           clone
  0,27    0,000078           1        66         4 fcntl
  0,27    0,000077           2        33           pwrite64
  0,19    0,000054           6         9           munmap
  0,18    0,000052           1        34           brk
  0,15    0,000043          10         4           ftruncate
  0,07    0,000019           2         8           fchown
  0,07    0,000019           6         3           eventfd2
  0,06    0,000018           4         4         4 mkdir
  0,05    0,000014           2         6           write
  0,03    0,000009           3         3           rt_sigprocmask
  0,03    0,000009           1         8           geteuid
  0,03    0,000008           1         5         3 access
  0,03    0,000008           0        11           getpid
  0,02    0,000006           6         1           sched_setattr
  0,02    0,000006           6         1           sched_getattr
  0,02    0,000005           2         2           ioctl
  0,01    0,000004           4         1         1 getpeername
  0,01    0,000004           4         1           gettid
  0,00    0,000000           0         8           lstat
  0,00    0,000000           0         1           lseek
  0,00    0,000000           0         3           rt_sigaction
  0,00    0,000000           0         1           socket
  0,00    0,000000           0         1         1 connect
  0,00    0,000000           0         1           execve
  0,00    0,000000           0         1           getuid
  0,00    0,000000           0         2         1 arch_prctl
  0,00    0,000000           0         2           getdents64
  0,00    0,000000           0         1           set_tid_address
  0,00    0,000000           0         1           set_robust_list
  0,00    0,000000           0         1           prlimit64
------ ----------- ----------- --------- --------- ----------------
100.00    0,029028                  2435       128 total

Après si tu veux vraiment décortiquer voici de rapide tutoriels :

Pour reproduire la hausse mémoire, j’ai en effet pas mal navigué d’un dossier à l’autre.

 bash: tracker3 : commande introuvable

Mais tracker status indique :

Tous les collecteurs de données sont arrêtés.
L’indexation est terminé

Quand à tracker daemon -t, cela ne change rien à l’affaire, Nautilus reste lent.

ah pardon XD