Actualité

Mac

Astuce : en finir avec le "kernel_task" qui "mange" 100% du CPU

Par Didier Pulicani - Publié le

Depuis Lion (10.7) ou Moutain Lion (10.8), un problème récurent semble toucher un certain nombre de Mac : en cas de montée en température du CPU, le processus kernel_task (que l'on peut voir dans le Moniteur d'Activité) se met à consommer la quasi-totalité du CPU disponible. Il s'agit en fait d'un procédé jugé normal par Apple : le noyau va donner toute la priorité à des tâches basiques, moins gourmandes en énergie et en calculs, tant que le CPU ne baissera pas en température. De nombreux sujets évoquent la question, tant chez Apple (ici, ou encore ) que sur forums des sites spécialisés.

Soyons clairs : si votre Mac est posé sur une couverture, qu'il est mal ventilé (poussières, obstructions etc.), il est évidemment nécessaire de jeter un oeil, avant toutes choses, aux causes les plus évidentes d'une telle surchauffe. Si l'on vous parle du problème, c'est justement qu'il ne semble pas toujours y avoir de cause claire, dans un certain nombre de cas.

Souvent, le phénomène apparait lorsque le Mac est hautement sollicité : une vidéo FullHD sur YouTube, un calcul de rendu 3D, un jeu... C'est dans ces moments, où l'utilisateur a justement besoin de puissance, que le phénomène est le plus présent. Le procédé est d'autant plus discutable que le processeur possède déjà ses propres fusibles en cas de surchauffe excessive (il ralentit, voire s'arrête). D'après certains témoignages, le soucis surviendrait d'ailleurs à des températures encore faibles, entour de 80°.

Souvent, la plupart des solutions classiques n'ont pas fonctionné (réinitialisation de la mémoire SMC notamment). Vous pouvez également essayer de démarrer sans les extensions (voir ici), une opération qui procède, notamment, à une vérification du répertoire du disque dur.

Voici une solution de contournement, qui fonctionne (on l'a testé) mais à utiliser à vos risques et périls. En effet, il s'agit tout simplement de désactiver cette protection du noyau. Par ailleurs, il est possible que la manipulation saute à la prochaine mise à jour.

Voici donc la série de commandes à effectuer dans le terminal :

Récupérez déjà le modèle de votre Mac via la commande suivante :

system_profiler -detailLevel mini | grep "Model Identifier:"


Normalement, vous verrez une ligne du type MacBookPro6,1 s'afficher.

Nous allons maintenant retirer un fichier .plist chargé de gérer ce refroidissement logiciel pour votre Mac. Pour cela, il faut vous rendre dans ce répertoire :

cd /System/Library/Extensions/IOPlatformPluginFamily.kext/


Puis, placez-vous dans ce sous-dossier et listez le contenu :

cd Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources/
ls


Astuce : en finir avec le "kernel_task" qui "mange" 100% du CPU


A ce stade, vous aurez sous vos yeux une série de fichiers, dont l'un correspondant à l'identifiant de votre machine (voir plus haut). Il suffit alors de déplacer ce fichier (sur le bureau, par exemple) pour rendre la fonction inopérante.

Par exemple :

mv MacBookPro6_1.plist /Users/didier/Desktop


Il suffit enfin de redémarrer et vous ne devriez plus voir le fameux kernel_task monopliser tout votre CPU sans votre accord.

Comme vu plus haut, il ne s'agit pas à proprement parler d'une solution, mais plutôt de soigner les symptômes d'un problème, voire d'un bug de Mac OS X (à confirmer) : il est possible que votre Mac surchauffe trop facilement, ou qu'un processus/extension soit à l'origine de cette montée anormale en température.