Pourquoi Chrome a-t-il autant de processus sur ma machine?

21

J'ai près de 20 processus pour google chrome (tout en n'ayant que 4 onglets ouverts, tous avec du barebones HTML), tous accaparant la mémoire et disant soit futex_wait_queue_me ou poll_schedule_timeout.

Mon fan se déchaîne à cause de tout cela et l'une des processeurs mange tout mon processeur, que se passe-t-il?

(Arrive aussi au chrome)

Dante Ashton
la source
Peut-être que la mémoire est probablement partagée entre les processus. Regardez/proc/$pid/smaps et voyez si Pss est inférieur à Rss . Si c'est le cas, il est partagé.
karthick87
3
vous trouverez ici quelques informations supplémentaires stackoverflow.com/questions/2019500/…
NES

Réponses:

29

Chrome affiche chaque page (onglet) dans un processus différent. Cela le rend plus rapide sur les machines multiprocesseurs.

Le comportement que vous voyez est normal.

futex_wait_queue_mefait référence à un type de verrouillage mutex (exclusion mutuelle rapide de l'espace utilisateur) utilisé pour planifier de nombreux processus sur un seul processeur. L'état indique que votre processus est mis en file d'attente pour recevoir le verrou.

Parfois, une attente anormalement élevée pour un verrou peut être causée par la limitation du processeur, mais le plus souvent, c'est normal. Jetez un œil au type de site Web que vous avez ouvert; Peut-être que quelque chose comme Flash provoque une charge CPU élevée.

Pour voir quels onglets ou plugins ralentissent votre système ou remplissent votre mémoire, vous pouvez utiliser le gestionnaire de tâches intégré de Chrome:

Faites un clic droit sur la barre d'onglets et sélectionnez "Gestionnaire des tâches"

texte alternatif

Dans mon exemple, le javascript d'omgubuntu utilise beaucoup de cpu.

Stefano Palazzo
la source
5
Il rend chaque onglet comme un processus différent - l'exécute dans son propre "bac à sable" pour minimiser les chances qu'un virus tue le navigateur entier. Ça a du sens?
jrg
5
Chaque plugin (flash, etc.) est également son propre processus. Et cela n'arrête pas seulement les virus - si flash se bloque, ou un onglet se bloque, il vous permet de simplement tuer l'onglet / plugin / quoi que ce soit, et de laisser le reste de vos trucs intact. Ceci est considéré comme une fonctionnalité pratique et d'autres navigateurs s'efforcent de l'imiter. Je crois que Mozilla travaille sur un changement radical du système de gestion des onglets de Firefox juste pour implémenter cette fonctionnalité, mais je ne les suit pas de près et je ne sais pas s'il est prévu de sortir pour FF4.
Daniel
@jrgifford Vous avez tout à fait raison, je l'ai recherché et j'ai supprimé l'ambiguïté. C'est un processus complet, pas seulement un fil.
Stefano Palazzo
@Daniel Dieu j'espère que non ... Quand j'ai des tonnes d'onglets ouverts et que Flash en tue un, au moins la moitié d'entre eux tombent. Cela n'arrive que dans Chrome, jamais dans Firefox ...
Nick Pascucci
1
@jrgifford You jerk chanceux. Euh ... Ouais, le navigateur étant la seule chose qui peut consommer des ressources système, ils ont probablement (et à juste titre) l'impression d'avoir la licence pour sandboxer chaque instance de flash comme son propre processus. Mais ce serait un peu extrême pour la version non OS de Chrome, je suppose.
Daniel
3

Avoir plusieurs processus est un comportement normal de Chrome / Chrome.
l'état de futex_wait_queue_me ou poll_schedule_timeout pour ces processus semble correct.

Vous pouvez utiliser le moniteur système pour voir si un processus particulier utilise trop de CPU. Parfois, des javascripts ou des programmes flash bogués commencent à utiliser tous les processeurs.

Si vous pensez que c'est le cas, assurez-vous que vous n'avez aucune donnée non enregistrée dans certaines applications Web et terminez simplement le processus. Chrome vous proposera alors de recharger la page. Cela résout généralement le problème.

Maxime R.
la source