Kworker, de quoi s'agit-il et pourquoi accapare-t-il autant de ressources processeur?

115

Je suis récemment passé à la version bêta 1 de Kubuntu Natty et le processus kworker me pose de nombreux problèmes. À certains moments, il utilise presque la moitié de mon processeur. Aussi, étrangement, cela semble affecter mes ports USB; chaque fois que je connecte une clé USB, le processus kworker passe en hyperdrive, ce qui me empêche de travailler.

J'ai envisagé de créer un bogue, mais comme je n'ai pas encore trouvé d'explication raisonnable sur ce que kworker , je pense que je devrais le découvrir en premier.

    
posée davorao 05.04.2011 - 15:57
la source

6 réponses

99

"kworker" est un processus fictif pour les threads de travail du noyau, qui effectuent la majeure partie du traitement réel du noyau, en particulier dans les cas d'interruptions, de minuteries, d'E / S, etc. Ils correspondent généralement à la grande majorité des tâches. tout temps "système" alloué aux processus en cours. Ce n'est pas quelque chose qui peut être retiré du système de quelque manière que ce soit, et n'a absolument aucun lien avec nepomuk ou KDE (sauf que ces programmes peuvent faire des appels système, ce qui peut obliger le noyau à faire quelque chose).

Certains rapports font état d’une activité excessive de kworker pendant relativement systèmes inactifs commençant au cours du développement de la version 2.6.36 ( exemple de discussion ) et de nombreux rapports de confusion et de problèmes liés à la version 2.6 .38 (bien que beaucoup de ces rapports incluent le mot "Natty", je suppose donc que ces personnes n’ont utilisé aucun noyau compris entre 2.6.35 (distribué dans Ubuntu 10.10) et 2.6.38 (distribué dans Ubuntu 11.04).

J'ai trouvé de nombreux rapports faisant état de quelque chose qui "corrigeait" cela pour l'un ou l'autre utilisateur. La plupart des "correctifs" semblent être liés aux mises à jour du noyau de différentes sortes. Lorsque la mise à jour peut être liée à un problème spécifique, il semble que ce soit souvent un pilote ou un service du noyau qui a été corrigé pour ne pas se conduire mal: j'ai l'impression qu'il y a un très grand nombre d'éléments dans le noyau qui peuvent provoquer un comportement qui est observé comme une utilisation excessive de kworker.

Si vous trouvez le système inutilisable en raison d'une activité excessive de kworker, je vous recommanderais d'essayer de faire moins de choses. Si vous pensez que vous ne faites rien, essayez de fermer les services ou les minuteries de longue durée (lecteurs RSS, lecteurs de courrier, indexeurs de fichiers, suiveurs d'activité, etc.). Si cela ne fonctionne pas, essayez de redémarrer. Si votre système vous permet d'activer ou de désactiver du matériel dans un environnement de prédémarrage, essayez de désactiver le matériel que vous n'utilisez pas. Si cela se produit à chaque redémarrage avant de faire quoi que ce soit, vous pouvez essayer de désinstaller certaines choses, mais à ce stade, vous devrez exécuter des outils de profilage syscall pour localiser des applications spécifiques qui semblent causer cette surcharge.

Il est à espérer que votre système spécifique cessera d'exprimer ce problème lors d'une future mise à niveau du noyau (et la plupart des causes les plus courantes ont été résolues).

    
réponse donnée Emmet Hikory 08.07.2011 - 12:44
la source
71

Qu'est-ce que kworker? kworker désigne un processus du noyau Linux effectuant un "travail" (traitement des appels système). Vous pouvez en avoir plusieurs dans votre liste de processus: kworker/0:1 est celui de votre premier cœur de processeur, kworker/1:1 celui de votre deuxième etc ..

Pourquoi kworker ralentit-il votre processeur? Pour savoir pourquoi un kworker gaspille votre processeur, vous pouvez créer des tracés de processeur: surveillez la charge de votre processeur (avec top ou autre) et strong charge via kworker , exécutez echo l > /proc/sysrq-trigger pour créer une trace. (Sous Ubuntu, vous devez vous connecter avec sudo -s ). Faites cela plusieurs fois, puis observez les traces à la fin de la sortie de dmesg . Voyez ce qui se produit fréquemment dans les traces du processeur, cela vous indique, espérons-le, la source de votre problème.

Exemple: e1000e. Dans mon cas, j'ai trouvé une trace de ce type presque chaque fois:

Call Trace:
 delay_tsc+0x4a/0x80
 __const_udelay+0x2c/0x30
 e1000_acquire_swflag_ich8lan+0xa2/0x240 [e1000e]
 e1000e_read_phy_reg_igp+0x29/0x80 [e1000e]
 e1000e_phy_has_link_generic+0x85/0x120 [e1000e]
 e1000_check_for_copper_link_ich8lan+0x48/0x930 [e1000e]
 e1000e_has_link+0x55/0xd0 [e1000e]
 e1000_watchdog_task+0x5e/0x960 [e1000e]

Cela m'a fait penser à un problème dans le module de carte Ethernet e1000e . En effet, un sudo rmmod e1000e a fait disparaître immédiatement la charge de processeur élevée [ e1000e bogue n ° 26 ].

    
réponse donnée tanius 17.02.2014 - 03:42
la source
56

Pourquoi kworker ralentit-il votre processeur (suite)? Au lieu de mon autre réponse ici , Perf est un moyen plus professionnel d'analyser les tâches du noyau qui monopolisent votre CPU:

  1. Installer perf :

    sudo apt-get install linux-tools-common linux-tools-3.11.0-15-generic
    

    (Le second paquet doit correspondre à la version de votre noyau. Vous pouvez d'abord installer linux-tools-common et appeler perf pour lui dire de quel paquet il a besoin.)

  2. Enregistrez environ 10 secondes de traces sur tous vos processeurs:

    sudo perf record -g -a sleep 10
    
  3. Analysez votre enregistrement:

    sudo perf report
    

    (Parcourez le graphe des appels avec , , , et Entrez .)

réponse donnée tanius 17.02.2014 - 16:26
la source
7

Juste pour que tout le monde sache. J'ai rencontré ce problème, Perf installé (qui est un excellent outil), il a souligné le verrouillage de rotation et XFS. Cela a désigné NFS. Puis je me suis rendu compte que l’un de mes montages n’était plus assez grand. La libération de l’espace a fait chuter le processeur kworker à 0.

Donc, apparemment, cela peut être le symptôme d'un manque d'espace disque sur un serveur NFS occupé!

    
réponse donnée Erik Aronesty 19.03.2014 - 14:40
la source
4

J'ai récemment installé Ubuntu Natty sur un lecteur externe USB WD Passport. Lorsque je démarre sur mon ordinateur, qui a environ deux ans, tout fonctionne à merveille. Lorsque je démarre sur mon nouvel ordinateur portable (système MSI gt680r), la lecture ralentit après que je sois sorti de veille ou si je branche un autre disque USB.

Les processus Kworker prennent de plus en plus de processeurs et la souris se fige de temps en temps.

J'ai lu plusieurs solutions qui ne fonctionnaient pas sur divers forums.

Je suis allé dans la biographie de mon ordinateur portable, où il y avait:

Hand XCHI OFF: Enabled
EHCI Hand OFF: disabled

J'ai changé pour:

Hand XCHI OFF: disabled
EHCI Hand OFF: disabled

et depuis, il ne gèle plus sur mon ordinateur portable.

J'activerais la main si et quand le problème est corrigé.

    
réponse donnée CedCannes 01.07.2011 - 11:08
la source
0

Je pense que désactiver Nepomuk peut vous aider:

link

    
réponse donnée Extender 06.05.2011 - 08:02
la source

Lire d'autres questions sur les étiquettes