703 votes

Comment trouver la cause d'une utilisation élevée de kernel_task cpu ?

De temps en temps, ma machine a un kernel_task instance qui maximise le CPU :

high kernel_task CPU usage

Cela peut durer de quelques minutes à plusieurs heures. Dans cet état, la machine est effectivement inutilisable. Le redémarrage n'est d'aucune utilité. kernel_task réapparaît jusqu'à ce qu'il termine ce qu'il est en train de faire.

Comment puis-je savoir ce que fait ce processus ?

0 votes

Woah, ça vient de devenir beaucoup plus intéressant. Y a-t-il une chance que nous puissions obtenir les deux instantanés mis à jour une deuxième fois - le même processus de CPU trié et la mesure détaillée de la puissance ?

7 votes

@bmike J'ai réussi à la fois à reproduire le problème et à le résoudre à volonté. Les graphiques iStatMenus le confirment, la cause dans mon cas est élevée température du châssis de la charge et des périphériques branchés sur les ports TB de gauche.

3 votes

Oui - ce capteur de température a la capacité de causer cela précisément. Merci pour l'édition - cela aide à clarifier grandement la situation pour l'enregistrement.

958voto

Adam Points 10840

TLDR ; Si votre MacBook Pro chauffe ou montre un % élevé de CPU pour la tâche du noyau, essayez de charger à droite et non à gauche.


Haut kernel_task L'utilisation du CPU est due à température élevée du châssis causée par la charge . En particulier Gauche Utilisation du port Thunderbolt.

Les solutions comprennent :

  • Déplacez la charge de la gauche vers la droite. Si vous avez un deuxième chargeur, branchez-le sur le côté droit. Évitez de tout brancher sur le côté droit (voir le dernier paragraphe ci-dessous).
  • Débranchez quelque chose du côté gauche. Soit l'alimentation ou un autre accessoire jusqu'à ce que la batterie soit pleine.
  • Forcez les ventilateurs au maximum avant de les brancher. iStatMenus a un élément de menu Sensors -> Fans pour le faire. Cela n'est utile que dans des conditions marginales.
  • Déplacez-vous dans une pièce plus fraîche.
  • Si vous utilisez à la fois l'écran de l'ordinateur portable et l'écran externe essayez de passer à l'un ou l'autre (je suis passé à l'externe uniquement, couvercle de l'ordinateur portable fermé). Certains MBP (par exemple les modèles 15" Intel à barre tactile) ont une bizarrerie de conception qui fait que cette configuration peut devenir plus chaude qu'elle ne le devrait.

Preuve :

La température réelle du CPU ou l'utilisation du CPU de l'application n'est pas corrélée avec kernel_task . Un processeur chaud est étranglé en réduisant sa vitesse d'horloge, et non en programmant une fausse charge de non-utilisation.

Les graphiques ci-dessous proviennent de iStatMenus. La machine a été utilisée sur batterie puis branchée.

État A un hub USB-C (souris et clavier, plus alimentation) et un adaptateur USB-C HDMI 2.0, tous deux sur le côté gauche. Vous pouvez voir le Proximité gauche du Thunderbolt le capteur de température augmente rapidement. Environ 3-4 minutes plus tard, le redoutable kernel_task une utilisation élevée du CPU commence.

État B guérit le kernel_task en déplaçant la puissance des ports de gauche vers ceux de droite. La température du côté gauche baisse et le kernel_task disparaît en 15 secondes environ.

C'est la cause. En déplaçant la puissance vers le côté gauche, en restaurant État A rétablit rapidement les températures et kernel_task revient après 3-4 minutes. En déplaçant à nouveau l'alimentation vers le côté droit, on rétablit État B résout le problème immédiatement.

État C montre que le simple fait d'avoir des objets branchés sur les ports de la tuberculose augmente considérablement leur température. Le hub (souris et clavier UNIQUEMENT) et l'adaptateur HDMI augmentent la température d'environ 10 degrés individuellement, et de 15 degrés ensemble.

CPU usage and temperature graphs

(toutes les autres températures étaient basses et plates, inférieures à 55 degrés).

Notez que la température élevée du côté droit semble être ignorée par l'OS. En branchant tout dans les deux ports de droite au lieu de ceux de gauche, la température à droite a dépassé les 100 degrés, sans que les ventilateurs ne se déclenchent. Non kernel_task non plus, mais la machine devient inutilisable à partir de quelque chose étranglement.

Ergo, utilisation élevée du CPU par kernel_task est causée par une forte Proximité gauche du Thunderbolt température, qui est causée par la charge et la présence de périphériques normaux branchés en même temps.

Macbook Pro 2017 15", MacOS 10.14.5


Pour répondre à la question :

Comment puis-je savoir ce que fait ce processus ?

La seule façon de demander au noyau ce qu'il fait est d'utiliser un débogueur de noyau. Cela signifie qu'il faut obtenir un noyau de débogage auprès d'Apple, redémarrer, puis utiliser la fonction un deuxième Mac pour s'attacher à la machine déboguée. Vous pouvez alors examiner les traces de la pile et deviner ce qu'elles signifient.

Sinon, la seule solution est de deviner et de tester. Bien sûr, cela conduit à de fausses conclusions le plus souvent.

26 votes

Ce problème exact me tourmente au bord de la folie depuis des mois, et j'ai tout essayé pour l'arrêter. Récemment, le retour à HS depuis Mojave l'a "résolu", mais il est revenu ce soir de façon inattendue une semaine plus tard, sans qu'aucun événement ne le déclenche à nouveau. J'ai fait environ 30 étapes différentes que j'ai trouvées dans des forums pendant probablement 40 heures depuis que j'ai commencé à chercher des solutions. Un nouvel utilisateur sur le même système semble prendre un nouveau départ, mais le problème revient inévitablement. J'ai moi aussi l'impression que cela a quelque chose à voir avec l'alimentation/la puissance/la chaleur.

0 votes

Le problème, c'est qu'une fois que Kernel_task et le serveur de fenêtres apparaissent, RIEN de ce que je peux faire ne les élimine, ni ne supprime la surcharge du système. J'ai utilisé le système (et l'ai poussé) pendant des semaines et même en cas d'utilisation intensive, Kernel_task et Windows Server n'apparaissaient pas du tout, jusqu'à ce qu'ils apparaissent, et ils utilisent 10 à 30 % du temps même après avoir laissé le système refroidir et sans rien faire tourner. Etrecheck signale une utilisation élevée des E/S lorsque ces deux processus sont présents, même sur un système froid et inactif. Avez-vous une idée de la façon dont on peut remettre ces processus dans le droit chemin lorsqu'ils se comportent mal ? Je m'arrache les cheveux, c'est un vrai cauchemar !

2 votes

Pour moi, l'important n'est pas ce que vous faites avec la machine, mais ce qui est branché dessus. La charge augmente la température d'environ 40 degrés, les périphériques d'environ 15. Pour moi kernel_task disparaît lorsque la charge est terminée. De même, l'utilisation de ports des deux côtés de la machine permet d'équilibrer la charge et de résoudre le problème.

82voto

CoyBit Points 779

Aujourd'hui, j'ai eu ce problème.

Il est intéressant de noter qu'après avoir changé le port que j'utilisais pour charger l'ordinateur portable et utilisé un autre port de l'ordinateur portable, l'utilisation du processeur a diminué :

enter image description here

12 votes

Quelle est l'échelle de temps de ce graphique ? Je suppose qu'il faut un certain temps pour observer la baisse si vous changez de port.

31 votes

Immédiatement. Littéralement 2sec !

0 votes

MacBook Pro Early 2015 : J'ai eu ce problème il y a quelques minutes. Je rechargeais un iPhone Xs et le Kernel devenait fou (Comme il le fait normalement de temps en temps). Puis je me suis souvenu avoir vu une discussion à ce sujet sur Hacker News il y a quelques jours qui renvoyait vers cette page. J'ai donc débranché le téléphone. Et voilà, la charge du CPU a diminué exactement comme dans votre image ici. C'est fou. Qui l'aurait cru ?

82voto

xji Points 1678

Si vous rencontrez ce problème sur un Macbook Pro 16" (2019), il semble que ce soit un problème bien connu concernant le corps de l'ordinateur portable qui ne peut pas gérer la chaleur du CPU et du GPU lorsque des moniteurs externes sont connectés. La solution ultime semble être d'utiliser un eGPU... ce qui ne serait probablement pas pratique pour la plupart des gens.

Un site Fil de discussion de la communauté AMD Il a ajouté que le coupable est le dGPU qui tourne à plein régime et consomme ~20W d'énergie lorsque l'ordinateur portable sort sur plusieurs moniteurs, apparemment parce que le pilote laisse la mémoire du dGPU tourner à pleine vitesse d'horloge "pour éviter les déchirures". Cela conduit rapidement à une surchauffe du châssis. La sortie sur un seul moniteur (le compte inclut le moniteur intégré), sans mise à l'échelle ou mise à l'échelle entière de la résolution, semble réduire la consommation d'énergie à ~9W et donc résoudre en grande partie le problème.

D'après les données du capteur, il semble que le déclenchement de l'étranglement soit dû aux températures de proximité du Thunderbolt gauche/droit.

UPDATE : Maintenant, je connecte toujours mon MBP à plusieurs moniteurs (le dGPU consomme ~20W), mais j'ai suivi le conseil d'un commentaire et acheté un petit ventilateur de bureau à diriger vers le MBP... La température semble être en grande partie sous contrôle maintenant et je n'ai pas kernel_task qui donne des coups de pied la plupart du temps. On pourrait penser que l'on n'a pas besoin d'un tel hack sur le supposé meilleur ordinateur portable que l'on puisse acheter, mais je suppose qu'il n'y a pas d'ordinateurs portables parfaits et je préfère encore m'en tenir au Macbook pour le moment.

UPDATE 2 : J'ai finalement installé mon eGPU et comme prévu, le MBP 16" n'a pas encore souffert de throttling depuis. Je suppose que vous pouvez toujours considérer ceci comme une option si toutes les autres alternatives échouent. Vous n'avez pas besoin d'une carte graphique sophistiquée/coûteuse. J'utilise un écran 4K et deux autres écrans avec une RX 580 sans aucun problème.

0 votes

Quelle était votre configuration eGPU ?

0 votes

@arxpoetica egpu.io a des guides assez complets. J'ai acheté le Mantiz Saturn comme boîtier, mais je suis sûr que quelque chose comme le Razer Core conviendrait aussi. Ensuite, j'ai acheté une RX 580 comme carte graphique et ça marche plutôt bien (la carte n'a pas besoin d'être le modèle le plus récent).

3 votes

C'est vraiment une honte que le Macbook Pro 16" (2019) se comporte comme ça, j'étais complètement dévasté quand j'ai lu que la solution serait d'acheter un GPU externe juste pour que l'ordinateur fonctionne normalement avec un moniteur externe. Puis j'ai trouvé cette vidéo mais après avoir installé Turbo Boost Switcher Pro mon problème a disparu ! Maintenant, je désactive Turbo Boost dès que l'ordinateur chauffe un peu. Avant cela, j'avais essayé de mettre mon Mac sur un coussin de refroidissement, mais cela n'a pas beaucoup aidé...

24voto

Jose Chavez Points 645

Comme il persiste pendant une très longue période, et qu'il persiste lors des redémarrages, il semble probable que votre problème soit causé par un problème matériel, à savoir un manque de refroidissement. Vous ne décrivez pas le type d'ordinateur que vous avez, mais essayez d'examiner son système de refroidissement pour voir s'il fonctionne comme prévu. Vous pouvez avoir un ventilateur cassé, beaucoup de poussière ou autre.

Le processus virtuel kernel_task permet, entre autres, de limiter l'utilisation du CPU afin de le maintenir en dessous de sa température maximale de fonctionnement. Le but est d'empêcher le CPU de s'éteindre inopinément. kernel_task fait cela en s'assurant que le CPU ne fait rien pendant de longues périodes de temps - essentiellement en s'assurant que le CPU utilise le moins d'énergie possible, ce qui signifie qu'il dégage moins de chaleur. Cela donne l'impression que kernel_task utilise beaucoup de CPU, mais en réalité, ce n'est pas le cas.

1 votes

Vous avez peut-être raison de penser que c'est lié à la température, mais ce n'est certainement pas le cas. Température du CPU connexes. Votre message m'a fait activer la surveillance du capteur de température des Menus iStat, et lorsque ce problème s'est reproduit, le CPU était assez froid. Voir la capture d'écran dans l'OP modifié.

0 votes

Si vous démarrez en mode récupération, l'utilisation du processeur de la tâche noyau est-elle toujours élevée ?

0 votes

J'ai remarqué de manière anecdotique que le kernel_task a disparu quand la température du thunderbolt gauche est descendue en dessous de 70 degrés. J'ai également remarqué que le fait de brancher un chargeur augmente la température du côté de la charge d'environ 20 à 30 degrés. Cela signifie que l'effet est testable, et je confirmerai la prochaine fois que ce problème se produira.

20voto

vaughan Points 1482

Cela est le plus souvent dû à l'étranglement thermique.

Un problème courant est la surchauffe des modules régulateurs de tension (VRM), qui ne disposent pas de capteurs accessibles au public.

Diagnostic

Cours : sudo watch -d -t -n1 thermal levels

Lorsque le processeur est supérieur à 100, vous êtes soumis à un étranglement thermique. Vous devriez garder un œil sur ce point pendant que vous essayez de résoudre vos problèmes.

Cours : sudo powermetrics --samplers smc |grep -i "CPU die temperature"

Cela montre la température de votre CPU. Si elle est < 100C, c'est votre VRM qui en est la cause.

Quelle est la température ambiante de votre pièce ? >Si la température ambiante est supérieure à 24°C, vous aurez du mal à la refroidir correctement, quel que soit le moyen utilisé.

Vous pouvez observer l'étranglement de manière visuelle en installant l'application Gadget de puissance Intel .

Corrections

Non invasif

  • Désactiver TurboBoost en utilisant Commutateur Turbo Boost
  • Acheter un petit ventilateur de bureau et le diriger vers l'ordinateur portable
  • Surélevez votre ordinateur portable sur un support pour ordinateur portable comme le CoolerMaster U150R.
  • Utilisez la climatisation pour réduire la température ambiante
  • Mettez votre ordinateur portable en veille jusqu'à ce que les températures soient réduites. Vérifiez thermal levels pour confirmer.

Invasive

De même, ne placez pas de briques de glace sous l'ordinateur portable - cela peut provoquer de la condensation et casser les choses.

0 votes

Pour autant que je sache, le noyau n'est qu'un composant logiciel qui se trouve dans l'ordinateur de l'utilisateur. /System/Library/kernels/kernel et constitue une interface entre le matériel et le logiciel et assure la communication. - Mais comment un composant logiciel peut-il communiquer davantage alors qu'un module matériel est généralement chaud et ne dispose même pas de capteurs. La seule chose qui me semblerait logique serait que les ventilateurs tournent plus vite. Des idées ? Merci pour la réponse

0 votes

Merci ! La désactivation de Turbo Boost a réglé le problème pour moi.

1 votes

@DarwinOSX Je pense que le PO voulait dire que les capteurs ne sont pas accessibles au public, mais qu'ils existent et sont accessibles par d'autres moyens ?

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X