Sur un ordinateur Ubuntu 16.04, j'ai vu kworker
occuper 80% du processeur de manière cohérente.
J'ai généré un rapport de performance:
Sudo apt-get install linux-tools-common linux-tools-$(uname -r)
Sudo perf record -g -a sleep 10
Sudo perf report
.Les premiers résultats sont:
Samples: 47K of event 'cycles:ppp', Event count (approx.): 38282161158
Children Self Command Shared Object Symbol
+ 77.04% 0.00% kworker/3:3 [kernel.kallsyms] [k] ret_from_fork
+ 77.04% 0.00% kworker/3:3 [kernel.kallsyms] [k] kthread
+ 77.04% 0.00% kworker/3:3 [kernel.kallsyms] [k] worker_thread
+ 77.00% 0.13% kworker/3:3 [kernel.kallsyms] [k] process_one_work
+ 76.26% 0.04% kworker/3:3 [kernel.kallsyms] [k] rpm_idle
+ 75.98% 0.06% kworker/3:3 [kernel.kallsyms] [k] rpm_suspend
+ 75.97% 0.03% kworker/3:3 [kernel.kallsyms] [k] pm_runtime_work
+ 75.84% 0.03% kworker/3:3 [kernel.kallsyms] [k] __rpm_callback
+ 75.82% 0.01% kworker/3:3 [kernel.kallsyms] [k] usb_runtime_idle
+ 75.76% 0.00% kworker/3:3 [kernel.kallsyms] [k] __pm_runtime_suspend
+ 75.64% 0.00% kworker/3:3 [kernel.kallsyms] [k] rpm_callback
+ 75.61% 0.04% kworker/3:3 [kernel.kallsyms] [k] usb_runtime_suspend
+ 75.51% 0.03% kworker/3:3 [kernel.kallsyms] [k] usb_suspend_both
+ 73.51% 0.15% kworker/3:3 [kernel.kallsyms] [k] usb_control_msg
+ 71.97% 0.14% kworker/3:3 [kernel.kallsyms] [k] usb_start_wait_urb
+ 68.38% 0.05% kworker/3:3 [kernel.kallsyms] [k] usb_submit_urb
+ 68.33% 0.30% kworker/3:3 [kernel.kallsyms] [k] usb_submit_urb.part.8
+ 67.75% 0.82% kworker/3:3 [kernel.kallsyms] [k] usb_hcd_submit_urb
+ 60.96% 60.41% kworker/3:3 [kernel.kallsyms] [k] xhci_hub_control
+ 55.99% 0.12% kworker/3:3 [kernel.kallsyms] [k] hub_suspend
+ 54.97% 0.04% kworker/3:3 [kernel.kallsyms] [k] set_port_feature
+ 19.36% 0.01% kworker/3:3 [kernel.kallsyms] [k] usb_resume_interface.isra.8
+ 19.35% 0.02% kworker/3:3 [kernel.kallsyms] [k] hub_resume
+ 19.32% 0.14% kworker/3:3 [kernel.kallsyms] [k] hub_activate
+ 18.78% 0.08% kworker/3:3 [kernel.kallsyms] [k] hub_ext_port_status
+ 11.13% 0.00% ksoftirqd/3 [kernel.kallsyms] [k] ret_from_fork
+ 11.13% 0.00% ksoftirqd/3 [kernel.kallsyms] [k] kthread
+ 10.44% 0.51% ksoftirqd/3 [kernel.kallsyms] [k] smpboot_thread_fn
Je ne sais pas comment reproduire. Il disparaît après un redémarrage. Que se passe-t-il?
Même problème ici sur un ordinateur portable Dell XPS et un noyau 4.4.0-130
Je l'ai corrigé en désactivant gestion dynamique de l'alimentation USB dans le noya
J'ai ajouté usbcore.autosuspend=-1
à la ligne de commande de démarrage de mon noyau:
GRUB_CMDLINE_LINUX_DEFAULT="<existing stuff> usbcore.autosuspend=-1"
Pour le faire en permanence, ouvrez le fichier de configuration grub
Sudo nano /etc/default/grub
et ajoutez le drapeau décrit ci-dessus.
Ensuite, vous devez mettre à jour votre grub via
Sudo update-grub
Après le redémarrage, tout devrait bien se passer, le processeur occupé est maintenant libre de faire quelque chose d'utile :)
Désactiver le mode dynamique PM peut avoir une incidence sur la durée de vie de la batterie lorsque des périphériques USB sont connectés, mais peu de périphériques USB sont capables de gérer ce mode ....
J'avais un problème similaire sur un ordinateur portable Dell. J'ai lu que c'était dû à un bogue du noyau et que cela pourrait être tempéré en effaçant une partie du cache du noyau en écrivant des valeurs dans un fichier dans /sys
, mais je doute que cela vous aide.
Je sais que les processus kworker
ne peuvent pas être supprimés. Si je dois en croire d’autres réponses à la même question sur Askubuntu/Unix, kworker
sont des processus d’espace réservé qui correspondent à l’activité du noyau.
Les solutions proposées ci-dessous sont les plus évidentes et susceptibles de donner des résultats (si elles n’ont pas encore été essayées), aux moins probables.
Juste au cas où vous ne l’auriez pas encore fait, je vous suggère de mettre à jour votre noyau avec la dernière version disponible des référentiels (Sudo apt update
). La mise à jour du noyau nécessite généralement un redémarrage pour voir l'effet.
Sinon, vous pouvez essayer d'installer Ubuntu 18.04, dont la version du noyau est 4.15.0-22 et intègre probablement un correctif.
Si vous avez recherché votre question dans Google, vous avez probablement déjà trouvé des rapports de bogues correspondant à votre description. Vous devriez lire à travers les commentaires qu’ils contiennent parfois des solutions ou des solutions de contournement. Le lien ci-dessous semble correspondre étroitement au vôtre, bien qu'il soit un peu intriguant car le correctif aurait dû arriver dans le noyau Ubuntu à ce jour (commentaire n ° 18).
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1488426
Quelque chose que je n'ai pas essayé quand j'ai rencontré le bogue utilisait une application de limitation du processeur, telle que cpulimit
ou cputool
(Sudo apt install cpulimit
ou Sudo apt install cputool
). Je ne sais pas s'il y a une chance pour que cette approche fonctionne. Je doute que cela puisse fonctionner avec un processus aussi non standard.
Remarque: Vous voudrez peut-être ajouter le résultat de uname -mr
à votre question et aux futures questions chaque fois que cela concerne le noyau Linux.
Écris une réponse si tu trouves quelque chose qui fonctionne.